mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 18:41:29 +00:00
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
Part of #33027, also discussed in #29848. Enforcing the use of brackets even on single line statements would be preferred, but `clang-format` doesn't have this functionality yet.
This commit is contained in:
parent
03b13e0c69
commit
e956e80c1f
130 changed files with 967 additions and 511 deletions
|
|
@ -81,7 +81,8 @@ void ShapeBullet::add_owner(ShapeOwnerBullet *p_owner) {
|
|||
|
||||
void ShapeBullet::remove_owner(ShapeOwnerBullet *p_owner, bool p_permanentlyFromThisBody) {
|
||||
Map<ShapeOwnerBullet *, int>::Element *E = owners.find(p_owner);
|
||||
if (!E) return;
|
||||
if (!E)
|
||||
return;
|
||||
E->get()--;
|
||||
if (p_permanentlyFromThisBody || 0 >= E->get()) {
|
||||
owners.erase(E);
|
||||
|
|
|
|||
|
|
@ -170,7 +170,8 @@ public:
|
|||
contactDebugCount = 0;
|
||||
}
|
||||
_FORCE_INLINE_ void add_debug_contact(const Vector3 &p_contact) {
|
||||
if (contactDebugCount < contactDebug.size()) contactDebug.write[contactDebugCount++] = p_contact;
|
||||
if (contactDebugCount < contactDebug.size())
|
||||
contactDebug.write[contactDebugCount++] = p_contact;
|
||||
}
|
||||
_FORCE_INLINE_ Vector<Vector3> get_debug_contacts() { return contactDebug; }
|
||||
_FORCE_INLINE_ int get_debug_contact_count() { return contactDebugCount; }
|
||||
|
|
|
|||
|
|
@ -138,10 +138,12 @@ inline bool is_point_in_triangle(const Vector3 &p_point, const Vector3 p_vertice
|
|||
lambda[2] = p_vertices[0].cross(p_vertices[1]).dot(p_point) / det;
|
||||
|
||||
// Point is in the plane if all lambdas sum to 1.
|
||||
if (!Math::is_equal_approx(lambda[0] + lambda[1] + lambda[2], 1)) return false;
|
||||
if (!Math::is_equal_approx(lambda[0] + lambda[1] + lambda[2], 1))
|
||||
return false;
|
||||
|
||||
// Point is inside the triangle if all lambdas are positive.
|
||||
if (lambda[0] < 0 || lambda[1] < 0 || lambda[2] < 0) return false;
|
||||
if (lambda[0] < 0 || lambda[1] < 0 || lambda[2] < 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -524,7 +526,8 @@ void CSGBrushOperation::MeshMerge::_add_distance(List<real_t> &r_intersectionsA,
|
|||
|
||||
// Check if distance exists.
|
||||
for (const List<real_t>::Element *E = intersections.front(); E; E = E->next())
|
||||
if (Math::abs(**E - p_distance) < vertex_snap) return;
|
||||
if (Math::abs(**E - p_distance) < vertex_snap)
|
||||
return;
|
||||
|
||||
intersections.push_back(p_distance);
|
||||
}
|
||||
|
|
@ -790,7 +793,8 @@ int CSGBrushOperation::Build2DFaces::_add_vertex(const Vertex2D &p_vertex) {
|
|||
|
||||
// Check if vertex exists.
|
||||
int vertex_id = _get_point_idx(p_vertex.point);
|
||||
if (vertex_id != -1) return vertex_id;
|
||||
if (vertex_id != -1)
|
||||
return vertex_id;
|
||||
|
||||
vertices.push_back(p_vertex);
|
||||
return vertices.size() - 1;
|
||||
|
|
@ -816,7 +820,8 @@ void CSGBrushOperation::Build2DFaces::_add_vertex_idx_sorted(Vector<int> &r_vert
|
|||
|
||||
// Sort along the axis with the greatest difference.
|
||||
int axis = 0;
|
||||
if (Math::abs(new_point.x - first_point.x) < Math::abs(new_point.y - first_point.y)) axis = 1;
|
||||
if (Math::abs(new_point.x - first_point.x) < Math::abs(new_point.y - first_point.y))
|
||||
axis = 1;
|
||||
|
||||
// Add it to the beginning or the end appropriately.
|
||||
if (new_point[axis] < first_point[axis])
|
||||
|
|
@ -834,7 +839,8 @@ void CSGBrushOperation::Build2DFaces::_add_vertex_idx_sorted(Vector<int> &r_vert
|
|||
|
||||
// Determine axis being sorted against i.e. the axis with the greatest difference.
|
||||
int axis = 0;
|
||||
if (Math::abs(last_point.x - first_point.x) < Math::abs(last_point.y - first_point.y)) axis = 1;
|
||||
if (Math::abs(last_point.x - first_point.x) < Math::abs(last_point.y - first_point.y))
|
||||
axis = 1;
|
||||
|
||||
// Insert the point at the appropriate index.
|
||||
for (int insert_idx = 0; insert_idx < r_vertex_indices.size(); ++insert_idx) {
|
||||
|
|
@ -853,7 +859,8 @@ void CSGBrushOperation::Build2DFaces::_add_vertex_idx_sorted(Vector<int> &r_vert
|
|||
void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_indices) {
|
||||
|
||||
int segments = p_segment_indices.size() - 1;
|
||||
if (segments < 2) return;
|
||||
if (segments < 2)
|
||||
return;
|
||||
|
||||
// Faces around an inner vertex are merged by moving the inner vertex to the first vertex.
|
||||
for (int sorted_idx = 1; sorted_idx < segments; ++sorted_idx) {
|
||||
|
|
@ -893,7 +900,8 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_
|
|||
|
||||
// Skip flattened faces.
|
||||
if (outer_edge_idx[0] == p_segment_indices[closest_idx] ||
|
||||
outer_edge_idx[1] == p_segment_indices[closest_idx]) continue;
|
||||
outer_edge_idx[1] == p_segment_indices[closest_idx])
|
||||
continue;
|
||||
|
||||
//Don't create degenerate triangles.
|
||||
Vector2 edge1[2] = {
|
||||
|
|
@ -924,7 +932,8 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_
|
|||
for (int i = 0; i < merge_faces_idx.size(); ++i)
|
||||
faces.remove(merge_faces_idx[i]);
|
||||
|
||||
if (degenerate_points.size() == 0) continue;
|
||||
if (degenerate_points.size() == 0)
|
||||
continue;
|
||||
|
||||
// Split faces using degenerate points.
|
||||
for (int face_idx = 0; face_idx < faces.size(); ++face_idx) {
|
||||
|
|
@ -954,7 +963,8 @@ void CSGBrushOperation::Build2DFaces::_merge_faces(const Vector<int> &p_segment_
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (existing) continue;
|
||||
if (existing)
|
||||
continue;
|
||||
|
||||
// Check if point is on an each edge.
|
||||
for (int face_edge_idx = 0; face_edge_idx < 3; ++face_edge_idx) {
|
||||
|
|
@ -1043,10 +1053,12 @@ void CSGBrushOperation::Build2DFaces::_find_edge_intersections(const Vector2 p_s
|
|||
|
||||
// Check if intersection point is an edge point.
|
||||
if ((intersection_point - edge_points[0]).length_squared() < vertex_snap2 ||
|
||||
(intersection_point - edge_points[1]).length_squared() < vertex_snap2) continue;
|
||||
(intersection_point - edge_points[1]).length_squared() < vertex_snap2)
|
||||
continue;
|
||||
|
||||
// Check if edge exists, by checking if the intersecting segment is parallel to the edge.
|
||||
if (are_segements_parallel(p_segment_points, edge_points, vertex_snap2)) continue;
|
||||
if (are_segements_parallel(p_segment_points, edge_points, vertex_snap2))
|
||||
continue;
|
||||
|
||||
// Add the intersection point as a new vertex.
|
||||
Vertex2D new_vertex;
|
||||
|
|
@ -1384,7 +1396,8 @@ void CSGBrushOperation::update_faces(const CSGBrush &p_brush_a, const int p_face
|
|||
p_collection.build2DFacesB[p_face_idx_b] = Build2DFaces();
|
||||
has_degenerate = true;
|
||||
}
|
||||
if (has_degenerate) return;
|
||||
if (has_degenerate)
|
||||
return;
|
||||
|
||||
// Ensure B has points either side of or in the plane of A.
|
||||
int in_plane_count = 0, over_count = 0, under_count = 0;
|
||||
|
|
@ -1400,7 +1413,8 @@ void CSGBrushOperation::update_faces(const CSGBrush &p_brush_a, const int p_face
|
|||
under_count++;
|
||||
}
|
||||
// If all points under or over the plane, there is no intesection.
|
||||
if (over_count == 3 || under_count == 3) return;
|
||||
if (over_count == 3 || under_count == 3)
|
||||
return;
|
||||
|
||||
// Ensure A has points either side of or in the plane of B.
|
||||
in_plane_count = 0;
|
||||
|
|
@ -1418,7 +1432,8 @@ void CSGBrushOperation::update_faces(const CSGBrush &p_brush_a, const int p_face
|
|||
under_count++;
|
||||
}
|
||||
// If all points under or over the plane, there is no intesection.
|
||||
if (over_count == 3 || under_count == 3) return;
|
||||
if (over_count == 3 || under_count == 3)
|
||||
return;
|
||||
|
||||
// Check for intersection using the SAT theorem.
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1783,11 +1783,15 @@ CSGBrush *CSGPolygon3D::_build_brush() {
|
|||
final_polygon_min = p;
|
||||
final_polygon_max = final_polygon_min;
|
||||
} else {
|
||||
if (p.x < final_polygon_min.x) final_polygon_min.x = p.x;
|
||||
if (p.y < final_polygon_min.y) final_polygon_min.y = p.y;
|
||||
if (p.x < final_polygon_min.x)
|
||||
final_polygon_min.x = p.x;
|
||||
if (p.y < final_polygon_min.y)
|
||||
final_polygon_min.y = p.y;
|
||||
|
||||
if (p.x > final_polygon_max.x) final_polygon_max.x = p.x;
|
||||
if (p.y > final_polygon_max.y) final_polygon_max.y = p.y;
|
||||
if (p.x > final_polygon_max.x)
|
||||
final_polygon_max.x = p.x;
|
||||
if (p.y > final_polygon_max.y)
|
||||
final_polygon_max.y = p.y;
|
||||
}
|
||||
}
|
||||
Vector2 final_polygon_size = final_polygon_max - final_polygon_min;
|
||||
|
|
|
|||
|
|
@ -177,7 +177,8 @@ void *godot_get_class_tag(const godot_string_name *p_class) {
|
|||
}
|
||||
|
||||
godot_object *godot_object_cast_to(const godot_object *p_object, void *p_class_tag) {
|
||||
if (!p_object) return nullptr;
|
||||
if (!p_object)
|
||||
return nullptr;
|
||||
Object *o = (Object *)p_object;
|
||||
|
||||
return o->is_class_ptr(p_class_tag) ? (godot_object *)o : nullptr;
|
||||
|
|
|
|||
|
|
@ -658,12 +658,14 @@ uint16_t GDScript::get_rpc_method_id(const StringName &p_method) const {
|
|||
}
|
||||
|
||||
StringName GDScript::get_rpc_method(const uint16_t p_rpc_method_id) const {
|
||||
if (p_rpc_method_id >= rpc_functions.size()) return StringName();
|
||||
if (p_rpc_method_id >= rpc_functions.size())
|
||||
return StringName();
|
||||
return rpc_functions[p_rpc_method_id].name;
|
||||
}
|
||||
|
||||
MultiplayerAPI::RPCMode GDScript::get_rpc_mode_by_id(const uint16_t p_rpc_method_id) const {
|
||||
if (p_rpc_method_id >= rpc_functions.size()) return MultiplayerAPI::RPC_MODE_DISABLED;
|
||||
if (p_rpc_method_id >= rpc_functions.size())
|
||||
return MultiplayerAPI::RPC_MODE_DISABLED;
|
||||
return rpc_functions[p_rpc_method_id].mode;
|
||||
}
|
||||
|
||||
|
|
@ -685,12 +687,14 @@ uint16_t GDScript::get_rset_property_id(const StringName &p_variable) const {
|
|||
}
|
||||
|
||||
StringName GDScript::get_rset_property(const uint16_t p_rset_member_id) const {
|
||||
if (p_rset_member_id >= rpc_variables.size()) return StringName();
|
||||
if (p_rset_member_id >= rpc_variables.size())
|
||||
return StringName();
|
||||
return rpc_variables[p_rset_member_id].name;
|
||||
}
|
||||
|
||||
MultiplayerAPI::RPCMode GDScript::get_rset_mode_by_id(const uint16_t p_rset_member_id) const {
|
||||
if (p_rset_member_id >= rpc_variables.size()) return MultiplayerAPI::RPC_MODE_DISABLED;
|
||||
if (p_rset_member_id >= rpc_variables.size())
|
||||
return MultiplayerAPI::RPC_MODE_DISABLED;
|
||||
return rpc_variables[p_rset_member_id].mode;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -861,71 +861,92 @@ int GDScriptCompiler::_parse_expression(CodeGen &codegen, const GDScriptParser::
|
|||
} break;
|
||||
//unary operators
|
||||
case GDScriptParser::OperatorNode::OP_NEG: {
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_NEGATE, p_stack_level)) return -1;
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_NEGATE, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_POS: {
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_POSITIVE, p_stack_level)) return -1;
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_POSITIVE, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_NOT: {
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_NOT, p_stack_level)) return -1;
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_NOT, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_BIT_INVERT: {
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_BIT_NEGATE, p_stack_level)) return -1;
|
||||
if (!_create_unary_operator(codegen, on, Variant::OP_BIT_NEGATE, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
//binary operators (in precedence order)
|
||||
case GDScriptParser::OperatorNode::OP_IN: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_IN, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_IN, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_EQUAL: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_EQUAL, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_EQUAL, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_NOT_EQUAL: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_NOT_EQUAL, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_NOT_EQUAL, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_LESS: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_LESS, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_LESS, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_LESS_EQUAL: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_LESS_EQUAL, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_LESS_EQUAL, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_GREATER: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_GREATER, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_GREATER, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_GREATER_EQUAL: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_GREATER_EQUAL, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_GREATER_EQUAL, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_ADD: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_ADD, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_ADD, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_SUB: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_SUBTRACT, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_SUBTRACT, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_MUL: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_MULTIPLY, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_MULTIPLY, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_DIV: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_DIVIDE, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_DIVIDE, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_MOD: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_MODULE, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_MODULE, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
//case GDScriptParser::OperatorNode::OP_SHIFT_LEFT: { if (!_create_binary_operator(codegen,on,Variant::OP_SHIFT_LEFT,p_stack_level)) return -1;} break;
|
||||
//case GDScriptParser::OperatorNode::OP_SHIFT_RIGHT: { if (!_create_binary_operator(codegen,on,Variant::OP_SHIFT_RIGHT,p_stack_level)) return -1;} break;
|
||||
case GDScriptParser::OperatorNode::OP_BIT_AND: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_BIT_AND, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_BIT_AND, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_BIT_OR: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_BIT_OR, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_BIT_OR, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_BIT_XOR: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_BIT_XOR, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_BIT_XOR, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
//shift
|
||||
case GDScriptParser::OperatorNode::OP_SHIFT_LEFT: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_SHIFT_LEFT, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_SHIFT_LEFT, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
case GDScriptParser::OperatorNode::OP_SHIFT_RIGHT: {
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_SHIFT_RIGHT, p_stack_level)) return -1;
|
||||
if (!_create_binary_operator(codegen, on, Variant::OP_SHIFT_RIGHT, p_stack_level))
|
||||
return -1;
|
||||
} break;
|
||||
//assignment operators
|
||||
case GDScriptParser::OperatorNode::OP_ASSIGN_ADD:
|
||||
|
|
|
|||
|
|
@ -123,10 +123,12 @@ class GDScriptCompiler {
|
|||
|
||||
Vector<int> opcodes;
|
||||
void alloc_stack(int p_level) {
|
||||
if (p_level >= stack_max) stack_max = p_level + 1;
|
||||
if (p_level >= stack_max)
|
||||
stack_max = p_level + 1;
|
||||
}
|
||||
void alloc_call(int p_params) {
|
||||
if (p_params >= call_max) call_max = p_params;
|
||||
if (p_params >= call_max)
|
||||
call_max = p_params;
|
||||
}
|
||||
|
||||
int current_line;
|
||||
|
|
|
|||
|
|
@ -56,7 +56,8 @@ struct GDScriptDataType {
|
|||
Ref<Script> script_type;
|
||||
|
||||
bool is_type(const Variant &p_variant, bool p_allow_implicit_conversion = false) const {
|
||||
if (!has_type) return true; // Can't type check
|
||||
if (!has_type)
|
||||
return true; // Can't type check
|
||||
|
||||
switch (kind) {
|
||||
case UNINITIALIZED:
|
||||
|
|
|
|||
|
|
@ -2047,7 +2047,8 @@ bool GDScriptParser::_reduce_export_var_type(Variant &p_value, int p_line) {
|
|||
if (p_value.get_type() == Variant::ARRAY) {
|
||||
Array arr = p_value;
|
||||
for (int i = 0; i < arr.size(); i++) {
|
||||
if (!_reduce_export_var_type(arr[i], p_line)) return false;
|
||||
if (!_reduce_export_var_type(arr[i], p_line))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -2056,7 +2057,8 @@ bool GDScriptParser::_reduce_export_var_type(Variant &p_value, int p_line) {
|
|||
Dictionary dict = p_value;
|
||||
for (int i = 0; i < dict.size(); i++) {
|
||||
Variant value = dict.get_value_at_index(i);
|
||||
if (!_reduce_export_var_type(value, p_line)) return false;
|
||||
if (!_reduce_export_var_type(value, p_line))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -3337,7 +3339,8 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
|
|||
|
||||
_parse_pattern_block(compiled_branches, match_node->branches, p_static);
|
||||
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
|
||||
ControlFlowNode *match_cf_node = alloc_node<ControlFlowNode>();
|
||||
match_cf_node->cf_type = ControlFlowNode::CF_MATCH;
|
||||
|
|
@ -4934,7 +4937,8 @@ void GDScriptParser::_parse_class(ClassNode *p_class) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!_reduce_export_var_type(cn->value, member.line)) return;
|
||||
if (!_reduce_export_var_type(cn->value, member.line))
|
||||
return;
|
||||
|
||||
member._export.type = cn->value.get_type();
|
||||
member._export.usage |= PROPERTY_USAGE_SCRIPT_VARIABLE;
|
||||
|
|
@ -5451,8 +5455,10 @@ void GDScriptParser::_determine_inheritance(ClassNode *p_class, bool p_recursive
|
|||
}
|
||||
}
|
||||
|
||||
if (base_class) break;
|
||||
if (found) continue;
|
||||
if (base_class)
|
||||
break;
|
||||
if (found)
|
||||
continue;
|
||||
|
||||
if (p->constant_expressions.has(base)) {
|
||||
if (p->constant_expressions[base].expression->type != Node::TYPE_CONSTANT) {
|
||||
|
|
@ -5554,10 +5560,12 @@ void GDScriptParser::_determine_inheritance(ClassNode *p_class, bool p_recursive
|
|||
}
|
||||
|
||||
String GDScriptParser::DataType::to_string() const {
|
||||
if (!has_type) return "var";
|
||||
if (!has_type)
|
||||
return "var";
|
||||
switch (kind) {
|
||||
case BUILTIN: {
|
||||
if (builtin_type == Variant::NIL) return "null";
|
||||
if (builtin_type == Variant::NIL)
|
||||
return "null";
|
||||
return Variant::get_type_name(builtin_type);
|
||||
} break;
|
||||
case NATIVE: {
|
||||
|
|
@ -5721,8 +5729,10 @@ bool GDScriptParser::_parse_type(DataType &r_type, bool p_can_be_void) {
|
|||
}
|
||||
|
||||
GDScriptParser::DataType GDScriptParser::_resolve_type(const DataType &p_source, int p_line) {
|
||||
if (!p_source.has_type) return p_source;
|
||||
if (p_source.kind != DataType::UNRESOLVED) return p_source;
|
||||
if (!p_source.has_type)
|
||||
return p_source;
|
||||
if (p_source.kind != DataType::UNRESOLVED)
|
||||
return p_source;
|
||||
|
||||
Vector<String> full_name = p_source.native_type.operator String().split(".", false);
|
||||
int name_part = 0;
|
||||
|
|
@ -6962,7 +6972,8 @@ bool GDScriptParser::_get_function_signature(DataType &p_base_type, const String
|
|||
native = "_" + native.operator String();
|
||||
}
|
||||
if (!ClassDB::class_exists(native)) {
|
||||
if (!check_types) return false;
|
||||
if (!check_types)
|
||||
return false;
|
||||
ERR_FAIL_V_MSG(false, "Parser bug: Class '" + String(native) + "' not found.");
|
||||
}
|
||||
|
||||
|
|
@ -7053,7 +7064,8 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat
|
|||
par_types.write[i - 1] = _reduce_node_type(p_call->arguments[i]);
|
||||
}
|
||||
|
||||
if (error_set) return DataType();
|
||||
if (error_set)
|
||||
return DataType();
|
||||
|
||||
// Special case: check copy constructor. Those are defined implicitly in Variant.
|
||||
if (par_types.size() == 1) {
|
||||
|
|
@ -7121,7 +7133,8 @@ GDScriptParser::DataType GDScriptParser::_reduce_function_call_type(const Operat
|
|||
err += "' matches the signature '";
|
||||
err += Variant::get_type_name(tn->vtype) + "(";
|
||||
for (int i = 0; i < par_types.size(); i++) {
|
||||
if (i > 0) err += ", ";
|
||||
if (i > 0)
|
||||
err += ", ";
|
||||
err += par_types[i].to_string();
|
||||
}
|
||||
err += ")'.";
|
||||
|
|
@ -7479,7 +7492,8 @@ bool GDScriptParser::_get_member_type(const DataType &p_base_type, const StringN
|
|||
native = "_" + native.operator String();
|
||||
}
|
||||
if (!ClassDB::class_exists(native)) {
|
||||
if (!check_types) return false;
|
||||
if (!check_types)
|
||||
return false;
|
||||
ERR_FAIL_V_MSG(false, "Parser bug: Class \"" + String(native) + "\" not found.");
|
||||
}
|
||||
|
||||
|
|
@ -7776,12 +7790,14 @@ void GDScriptParser::_check_class_level_types(ClassNode *p_class) {
|
|||
// Function declarations
|
||||
for (int i = 0; i < p_class->static_functions.size(); i++) {
|
||||
_check_function_types(p_class->static_functions[i]);
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_class->functions.size(); i++) {
|
||||
_check_function_types(p_class->functions[i]);
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
}
|
||||
|
||||
// Class variables
|
||||
|
|
@ -7856,7 +7872,8 @@ void GDScriptParser::_check_class_level_types(ClassNode *p_class) {
|
|||
}
|
||||
|
||||
// Setter and getter
|
||||
if (v.setter == StringName() && v.getter == StringName()) continue;
|
||||
if (v.setter == StringName() && v.getter == StringName())
|
||||
continue;
|
||||
|
||||
bool found_getter = false;
|
||||
bool found_setter = false;
|
||||
|
|
@ -7899,10 +7916,12 @@ void GDScriptParser::_check_class_level_types(ClassNode *p_class) {
|
|||
return;
|
||||
}
|
||||
}
|
||||
if (found_getter && found_setter) break;
|
||||
if (found_getter && found_setter)
|
||||
break;
|
||||
}
|
||||
|
||||
if ((found_getter || v.getter == StringName()) && (found_setter || v.setter == StringName())) continue;
|
||||
if ((found_getter || v.getter == StringName()) && (found_setter || v.setter == StringName()))
|
||||
continue;
|
||||
|
||||
// Check for static functions
|
||||
for (int j = 0; j < p_class->static_functions.size(); j++) {
|
||||
|
|
@ -7933,7 +7952,8 @@ void GDScriptParser::_check_class_level_types(ClassNode *p_class) {
|
|||
for (int i = 0; i < p_class->subclasses.size(); i++) {
|
||||
current_class = p_class->subclasses[i];
|
||||
_check_class_level_types(current_class);
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
current_class = p_class;
|
||||
}
|
||||
}
|
||||
|
|
@ -8081,7 +8101,8 @@ void GDScriptParser::_check_class_blocks_types(ClassNode *p_class) {
|
|||
_check_block_types(current_block);
|
||||
current_block = nullptr;
|
||||
current_function = nullptr;
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < p_class->functions.size(); i++) {
|
||||
|
|
@ -8091,7 +8112,8 @@ void GDScriptParser::_check_class_blocks_types(ClassNode *p_class) {
|
|||
_check_block_types(current_block);
|
||||
current_block = nullptr;
|
||||
current_function = nullptr;
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
|
|
@ -8112,7 +8134,8 @@ void GDScriptParser::_check_class_blocks_types(ClassNode *p_class) {
|
|||
for (int i = 0; i < p_class->subclasses.size(); i++) {
|
||||
current_class = p_class->subclasses[i];
|
||||
_check_class_blocks_types(current_class);
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
current_class = p_class;
|
||||
}
|
||||
}
|
||||
|
|
@ -8375,7 +8398,8 @@ void GDScriptParser::_check_block_types(BlockNode *p_block) {
|
|||
_add_warning(GDScriptWarning::RETURN_VALUE_DISCARDED, op->line, func_name);
|
||||
}
|
||||
#endif // DEBUG_ENABLED
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
} break;
|
||||
case OperatorNode::OP_YIELD: {
|
||||
_mark_line_as_safe(op->line);
|
||||
|
|
@ -8410,7 +8434,8 @@ void GDScriptParser::_check_block_types(BlockNode *p_block) {
|
|||
}
|
||||
}
|
||||
|
||||
if (!function_type.has_type) break;
|
||||
if (!function_type.has_type)
|
||||
break;
|
||||
|
||||
if (function_type.kind == DataType::BUILTIN && function_type.builtin_type == Variant::NIL) {
|
||||
// Return void, should not have arguments
|
||||
|
|
@ -8470,7 +8495,8 @@ void GDScriptParser::_check_block_types(BlockNode *p_block) {
|
|||
current_block = p_block->sub_blocks[i];
|
||||
_check_block_types(current_block);
|
||||
current_block = p_block;
|
||||
if (error_set) return;
|
||||
if (error_set)
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
|
|
@ -8613,7 +8639,8 @@ Error GDScriptParser::_parse(const String &p_base_path) {
|
|||
current_function = nullptr;
|
||||
current_block = nullptr;
|
||||
|
||||
if (for_completion) check_types = false;
|
||||
if (for_completion)
|
||||
check_types = false;
|
||||
|
||||
// Resolve all class-level stuff before getting into function blocks
|
||||
_check_class_level_types(main_class);
|
||||
|
|
|
|||
|
|
@ -648,12 +648,14 @@ private:
|
|||
void _check_block_types(BlockNode *p_block);
|
||||
_FORCE_INLINE_ void _mark_line_as_safe(int p_line) const {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (safe_lines) safe_lines->insert(p_line);
|
||||
if (safe_lines)
|
||||
safe_lines->insert(p_line);
|
||||
#endif // DEBUG_ENABLED
|
||||
}
|
||||
_FORCE_INLINE_ void _mark_line_as_unsafe(int p_line) const {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (safe_lines) safe_lines->erase(p_line);
|
||||
if (safe_lines)
|
||||
safe_lines->erase(p_line);
|
||||
#endif // DEBUG_ENABLED
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -385,7 +385,8 @@ String ExtendGDScriptParser::parse_documentation(int p_line, bool p_docs_down) {
|
|||
int start_line = p_docs_down ? p_line : p_line - 1;
|
||||
for (int i = start_line; true; i += step) {
|
||||
|
||||
if (i < 0 || i >= lines.size()) break;
|
||||
if (i < 0 || i >= lines.size())
|
||||
break;
|
||||
|
||||
String line_comment = lines[i].strip_edges(true, false);
|
||||
if (line_comment.begins_with("#")) {
|
||||
|
|
|
|||
|
|
@ -185,7 +185,8 @@ Array GDScriptWorkspace::symbol(const Dictionary &p_params) {
|
|||
}
|
||||
|
||||
Error GDScriptWorkspace::initialize() {
|
||||
if (initialized) return OK;
|
||||
if (initialized)
|
||||
return OK;
|
||||
|
||||
DocData *doc = EditorHelp::get_doc_data();
|
||||
for (Map<String, DocData::ClassDoc>::Element *E = doc->class_list.front(); E; E = E->next()) {
|
||||
|
|
|
|||
|
|
@ -282,7 +282,8 @@ struct Command {
|
|||
Dictionary dict;
|
||||
dict["title"] = title;
|
||||
dict["command"] = command;
|
||||
if (arguments.size()) dict["arguments"] = arguments;
|
||||
if (arguments.size())
|
||||
dict["arguments"] = arguments;
|
||||
return dict;
|
||||
}
|
||||
};
|
||||
|
|
@ -946,16 +947,20 @@ struct CompletionItem {
|
|||
dict["preselect"] = preselect;
|
||||
dict["sortText"] = sortText;
|
||||
dict["filterText"] = filterText;
|
||||
if (commitCharacters.size()) dict["commitCharacters"] = commitCharacters;
|
||||
if (commitCharacters.size())
|
||||
dict["commitCharacters"] = commitCharacters;
|
||||
dict["command"] = command.to_json();
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
|
||||
void load(const Dictionary &p_dict) {
|
||||
if (p_dict.has("label")) label = p_dict["label"];
|
||||
if (p_dict.has("kind")) kind = p_dict["kind"];
|
||||
if (p_dict.has("detail")) detail = p_dict["detail"];
|
||||
if (p_dict.has("label"))
|
||||
label = p_dict["label"];
|
||||
if (p_dict.has("kind"))
|
||||
kind = p_dict["kind"];
|
||||
if (p_dict.has("detail"))
|
||||
detail = p_dict["detail"];
|
||||
if (p_dict.has("documentation")) {
|
||||
Variant doc = p_dict["documentation"];
|
||||
if (doc.get_type() == Variant::STRING) {
|
||||
|
|
@ -965,12 +970,18 @@ struct CompletionItem {
|
|||
documentation.value = v["value"];
|
||||
}
|
||||
}
|
||||
if (p_dict.has("deprecated")) deprecated = p_dict["deprecated"];
|
||||
if (p_dict.has("preselect")) preselect = p_dict["preselect"];
|
||||
if (p_dict.has("sortText")) sortText = p_dict["sortText"];
|
||||
if (p_dict.has("filterText")) filterText = p_dict["filterText"];
|
||||
if (p_dict.has("insertText")) insertText = p_dict["insertText"];
|
||||
if (p_dict.has("data")) data = p_dict["data"];
|
||||
if (p_dict.has("deprecated"))
|
||||
deprecated = p_dict["deprecated"];
|
||||
if (p_dict.has("preselect"))
|
||||
preselect = p_dict["preselect"];
|
||||
if (p_dict.has("sortText"))
|
||||
sortText = p_dict["sortText"];
|
||||
if (p_dict.has("filterText"))
|
||||
filterText = p_dict["filterText"];
|
||||
if (p_dict.has("insertText"))
|
||||
insertText = p_dict["insertText"];
|
||||
if (p_dict.has("data"))
|
||||
data = p_dict["data"];
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -148,7 +148,8 @@ Variant JSONRPC::process_action(const Variant &p_action, bool p_process_arr_elem
|
|||
|
||||
String JSONRPC::process_string(const String &p_input) {
|
||||
|
||||
if (p_input.empty()) return String();
|
||||
if (p_input.empty())
|
||||
return String();
|
||||
|
||||
Variant ret;
|
||||
Variant input;
|
||||
|
|
|
|||
6
modules/mbedtls/packet_peer_mbed_dtls.cpp
Executable file → Normal file
6
modules/mbedtls/packet_peer_mbed_dtls.cpp
Executable file → Normal file
|
|
@ -36,7 +36,8 @@
|
|||
|
||||
int PacketPeerMbedDTLS::bio_send(void *ctx, const unsigned char *buf, size_t len) {
|
||||
|
||||
if (buf == nullptr || len <= 0) return 0;
|
||||
if (buf == nullptr || len <= 0)
|
||||
return 0;
|
||||
|
||||
PacketPeerMbedDTLS *sp = (PacketPeerMbedDTLS *)ctx;
|
||||
|
||||
|
|
@ -53,7 +54,8 @@ int PacketPeerMbedDTLS::bio_send(void *ctx, const unsigned char *buf, size_t len
|
|||
|
||||
int PacketPeerMbedDTLS::bio_recv(void *ctx, unsigned char *buf, size_t len) {
|
||||
|
||||
if (buf == nullptr || len <= 0) return 0;
|
||||
if (buf == nullptr || len <= 0)
|
||||
return 0;
|
||||
|
||||
PacketPeerMbedDTLS *sp = (PacketPeerMbedDTLS *)ctx;
|
||||
|
||||
|
|
|
|||
6
modules/mbedtls/stream_peer_mbedtls.cpp
Executable file → Normal file
6
modules/mbedtls/stream_peer_mbedtls.cpp
Executable file → Normal file
|
|
@ -35,7 +35,8 @@
|
|||
|
||||
int StreamPeerMbedTLS::bio_send(void *ctx, const unsigned char *buf, size_t len) {
|
||||
|
||||
if (buf == nullptr || len <= 0) return 0;
|
||||
if (buf == nullptr || len <= 0)
|
||||
return 0;
|
||||
|
||||
StreamPeerMbedTLS *sp = (StreamPeerMbedTLS *)ctx;
|
||||
|
||||
|
|
@ -54,7 +55,8 @@ int StreamPeerMbedTLS::bio_send(void *ctx, const unsigned char *buf, size_t len)
|
|||
|
||||
int StreamPeerMbedTLS::bio_recv(void *ctx, unsigned char *buf, size_t len) {
|
||||
|
||||
if (buf == nullptr || len <= 0) return 0;
|
||||
if (buf == nullptr || len <= 0)
|
||||
return 0;
|
||||
|
||||
StreamPeerMbedTLS *sp = (StreamPeerMbedTLS *)ctx;
|
||||
|
||||
|
|
|
|||
|
|
@ -61,13 +61,19 @@ Vector3 MobileVRInterface::scale_magneto(const Vector3 &p_magnetometer) {
|
|||
};
|
||||
|
||||
// adjust our min and max
|
||||
if (mag_raw.x > mag_next_max.x) mag_next_max.x = mag_raw.x;
|
||||
if (mag_raw.y > mag_next_max.y) mag_next_max.y = mag_raw.y;
|
||||
if (mag_raw.z > mag_next_max.z) mag_next_max.z = mag_raw.z;
|
||||
if (mag_raw.x > mag_next_max.x)
|
||||
mag_next_max.x = mag_raw.x;
|
||||
if (mag_raw.y > mag_next_max.y)
|
||||
mag_next_max.y = mag_raw.y;
|
||||
if (mag_raw.z > mag_next_max.z)
|
||||
mag_next_max.z = mag_raw.z;
|
||||
|
||||
if (mag_raw.x < mag_next_min.x) mag_next_min.x = mag_raw.x;
|
||||
if (mag_raw.y < mag_next_min.y) mag_next_min.y = mag_raw.y;
|
||||
if (mag_raw.z < mag_next_min.z) mag_next_min.z = mag_raw.z;
|
||||
if (mag_raw.x < mag_next_min.x)
|
||||
mag_next_min.x = mag_raw.x;
|
||||
if (mag_raw.y < mag_next_min.y)
|
||||
mag_next_min.y = mag_raw.y;
|
||||
if (mag_raw.z < mag_next_min.z)
|
||||
mag_next_min.z = mag_raw.z;
|
||||
|
||||
// scale our x, y and z
|
||||
if (!(mag_current_max.x - mag_current_min.x)) {
|
||||
|
|
|
|||
|
|
@ -619,7 +619,8 @@ class BindingsGenerator {
|
|||
const List<InternalCall>::Element *find_icall_by_name(const String &p_name, const List<InternalCall> &p_list) {
|
||||
const List<InternalCall>::Element *it = p_list.front();
|
||||
while (it) {
|
||||
if (it->get().name == p_name) return it;
|
||||
if (it->get().name == p_name)
|
||||
return it;
|
||||
it = it->next();
|
||||
}
|
||||
return nullptr;
|
||||
|
|
|
|||
|
|
@ -564,9 +564,10 @@ namespace Marshal {
|
|||
|
||||
#ifdef MONO_GLUE_ENABLED
|
||||
#ifdef TOOLS_ENABLED
|
||||
#define NO_GLUE_RET(m_ret) \
|
||||
{ \
|
||||
if (!GDMonoCache::cached_data.godot_api_cache_updated) return m_ret; \
|
||||
#define NO_GLUE_RET(m_ret) \
|
||||
{ \
|
||||
if (!GDMonoCache::cached_data.godot_api_cache_updated) \
|
||||
return m_ret; \
|
||||
}
|
||||
#else
|
||||
#define NO_GLUE_RET(m_ret) \
|
||||
|
|
|
|||
|
|
@ -202,19 +202,22 @@ Ref<OpenSimplexNoise> NoiseTexture::get_noise() {
|
|||
}
|
||||
|
||||
void NoiseTexture::set_width(int p_width) {
|
||||
if (p_width == size.x) return;
|
||||
if (p_width == size.x)
|
||||
return;
|
||||
size.x = p_width;
|
||||
_queue_update();
|
||||
}
|
||||
|
||||
void NoiseTexture::set_height(int p_height) {
|
||||
if (p_height == size.y) return;
|
||||
if (p_height == size.y)
|
||||
return;
|
||||
size.y = p_height;
|
||||
_queue_update();
|
||||
}
|
||||
|
||||
void NoiseTexture::set_seamless(bool p_seamless) {
|
||||
if (p_seamless == seamless) return;
|
||||
if (p_seamless == seamless)
|
||||
return;
|
||||
seamless = p_seamless;
|
||||
_queue_update();
|
||||
}
|
||||
|
|
@ -224,7 +227,8 @@ bool NoiseTexture::get_seamless() {
|
|||
}
|
||||
|
||||
void NoiseTexture::set_as_normalmap(bool p_as_normalmap) {
|
||||
if (p_as_normalmap == as_normalmap) return;
|
||||
if (p_as_normalmap == as_normalmap)
|
||||
return;
|
||||
as_normalmap = p_as_normalmap;
|
||||
_queue_update();
|
||||
_change_notify();
|
||||
|
|
@ -236,7 +240,8 @@ bool NoiseTexture::is_normalmap() {
|
|||
|
||||
void NoiseTexture::set_bump_strength(float p_bump_strength) {
|
||||
|
||||
if (p_bump_strength == bump_strength) return;
|
||||
if (p_bump_strength == bump_strength)
|
||||
return;
|
||||
bump_strength = p_bump_strength;
|
||||
if (as_normalmap)
|
||||
_queue_update();
|
||||
|
|
|
|||
|
|
@ -70,7 +70,8 @@ int OpenSimplexNoise::get_seed() {
|
|||
}
|
||||
|
||||
void OpenSimplexNoise::set_octaves(int p_octaves) {
|
||||
if (p_octaves == octaves) return;
|
||||
if (p_octaves == octaves)
|
||||
return;
|
||||
|
||||
ERR_FAIL_COND_MSG(p_octaves > MAX_OCTAVES, vformat("The number of OpenSimplexNoise octaves is limited to %d; ignoring the new value.", MAX_OCTAVES));
|
||||
|
||||
|
|
@ -79,19 +80,22 @@ void OpenSimplexNoise::set_octaves(int p_octaves) {
|
|||
}
|
||||
|
||||
void OpenSimplexNoise::set_period(float p_period) {
|
||||
if (p_period == period) return;
|
||||
if (p_period == period)
|
||||
return;
|
||||
period = p_period;
|
||||
emit_changed();
|
||||
}
|
||||
|
||||
void OpenSimplexNoise::set_persistence(float p_persistence) {
|
||||
if (p_persistence == persistence) return;
|
||||
if (p_persistence == persistence)
|
||||
return;
|
||||
persistence = p_persistence;
|
||||
emit_changed();
|
||||
}
|
||||
|
||||
void OpenSimplexNoise::set_lacunarity(float p_lacunarity) {
|
||||
if (p_lacunarity == lacunarity) return;
|
||||
if (p_lacunarity == lacunarity)
|
||||
return;
|
||||
lacunarity = p_lacunarity;
|
||||
emit_changed();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -209,7 +209,8 @@ void VideoStreamPlaybackTheora::set_file(const String &p_file) {
|
|||
|
||||
while (!stateflag) {
|
||||
int ret = buffer_data();
|
||||
if (ret == 0) break;
|
||||
if (ret == 0)
|
||||
break;
|
||||
while (ogg_sync_pageout(&oy, &og) > 0) {
|
||||
ogg_stream_state test;
|
||||
|
||||
|
|
@ -286,7 +287,8 @@ void VideoStreamPlaybackTheora::set_file(const String &p_file) {
|
|||
return;
|
||||
}
|
||||
vorbis_p++;
|
||||
if (vorbis_p == 3) break;
|
||||
if (vorbis_p == 3)
|
||||
break;
|
||||
}
|
||||
|
||||
/* The header pages/packets will arrive before anything else we
|
||||
|
|
|
|||
|
|
@ -144,7 +144,8 @@ void WebRTCMultiplayer::poll() {
|
|||
|
||||
void WebRTCMultiplayer::_find_next_peer() {
|
||||
Map<int, Ref<ConnectedPeer>>::Element *E = peer_map.find(next_packet_peer);
|
||||
if (E) E = E->next();
|
||||
if (E)
|
||||
E = E->next();
|
||||
// After last.
|
||||
while (E) {
|
||||
for (List<Ref<WebRTCDataChannel>>::Element *F = E->get()->channels.front(); F; F = F->next()) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue