Skip to content

Commit 3f01d03

Browse files
committed
[4.2] Fix more MSVC warnings for potential mod by 0 (C4724)
1 parent 3a84608 commit 3f01d03

4 files changed

Lines changed: 24 additions & 18 deletions

File tree

core/string/string_name.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ void StringName::cleanup() {
7979
data.sort_custom<DebugSortReferences>();
8080
int unreferenced_stringnames = 0;
8181
int rarely_referenced_stringnames = 0;
82-
for (int i = 0; i < data.size(); i++) {
82+
const int data_size = data.size();
83+
for (int i = 0; i < data_size; i++) {
8384
print_line(itos(i + 1) + ": " + data[i]->get_name() + " - " + itos(data[i]->debug_references));
8485
if (data[i]->debug_references == 0) {
8586
unreferenced_stringnames += 1;
@@ -88,8 +89,8 @@ void StringName::cleanup() {
8889
}
8990
}
9091

91-
print_line(vformat("\nOut of %d StringNames, %d StringNames were never referenced during this run (0 times) (%.2f%%).", data.size(), unreferenced_stringnames, unreferenced_stringnames / float(data.size()) * 100));
92-
print_line(vformat("Out of %d StringNames, %d StringNames were rarely referenced during this run (1-4 times) (%.2f%%).", data.size(), rarely_referenced_stringnames, rarely_referenced_stringnames / float(data.size()) * 100));
92+
print_line(vformat("\nOut of %d StringNames, %d StringNames were never referenced during this run (0 times) (%.2f%%).", data_size, unreferenced_stringnames, unreferenced_stringnames / float(data_size) * 100));
93+
print_line(vformat("Out of %d StringNames, %d StringNames were rarely referenced during this run (1-4 times) (%.2f%%).", data_size, rarely_referenced_stringnames, rarely_referenced_stringnames / float(data_size) * 100));
9394
}
9495
#endif
9596
int lost_strings = 0;

editor/plugins/tiles/tile_data_editors.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,9 @@ void GenericTilePolygonEditor::_base_control_draw() {
193193
base_control->draw_polygon(polygon, v_color);
194194

195195
color.a = 0.7;
196-
for (int j = 0; j < polygon.size(); j++) {
197-
base_control->draw_line(polygon[j], polygon[(j + 1) % polygon.size()], color);
196+
const int polygon_size = polygon.size();
197+
for (int j = 0; j < polygon_size; j++) {
198+
base_control->draw_line(polygon[j], polygon[(j + 1) % polygon_size], color);
198199
}
199200
}
200201

@@ -404,8 +405,9 @@ void GenericTilePolygonEditor::_grab_polygon_segment_point(Vector2 p_pos, const
404405
float closest_distance = grab_threshold * 2.0;
405406
for (unsigned int i = 0; i < polygons.size(); i++) {
406407
const Vector<Vector2> &polygon = polygons[i];
407-
for (int j = 0; j < polygon.size(); j++) {
408-
Vector2 segment[2] = { polygon[j], polygon[(j + 1) % polygon.size()] };
408+
const int polygon_size = polygon.size();
409+
for (int j = 0; j < polygon_size; j++) {
410+
Vector2 segment[2] = { polygon[j], polygon[(j + 1) % polygon_size] };
409411
Vector2 closest_point = Geometry2D::get_closest_point_to_segment(point, segment);
410412
float distance = closest_point.distance_to(point);
411413
if (distance < grab_threshold / editor_zoom_widget->get_zoom() && distance < closest_distance) {
@@ -429,7 +431,8 @@ void GenericTilePolygonEditor::_snap_to_tile_shape(Point2 &r_point, float &r_cur
429431

430432
// Snap to polygon vertices.
431433
bool snapped = false;
432-
for (int i = 0; i < polygon.size(); i++) {
434+
const int polygon_size = polygon.size();
435+
for (int i = 0; i < polygon_size; i++) {
433436
float distance = r_point.distance_to(polygon[i]);
434437
if (distance < p_snap_dist && distance < r_current_snapped_dist) {
435438
snapped_point = polygon[i];
@@ -440,8 +443,8 @@ void GenericTilePolygonEditor::_snap_to_tile_shape(Point2 &r_point, float &r_cur
440443

441444
// Snap to edges if we did not snap to vertices.
442445
if (!snapped) {
443-
for (int i = 0; i < polygon.size(); i++) {
444-
Point2 segment[2] = { polygon[i], polygon[(i + 1) % polygon.size()] };
446+
for (int i = 0; i < polygon_size; i++) {
447+
Point2 segment[2] = { polygon[i], polygon[(i + 1) % polygon_size] };
445448
Point2 point = Geometry2D::get_closest_point_to_segment(r_point, segment);
446449
float distance = r_point.distance_to(point);
447450
if (distance < p_snap_dist && distance < r_current_snapped_dist) {

scene/2d/collision_polygon_2d.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,10 @@ void CollisionPolygon2D::_build_polygon() {
4242
collision_object->shape_owner_clear_shapes(owner_id);
4343

4444
bool solids = build_mode == BUILD_SOLIDS;
45+
const int polygon_size = polygon.size();
4546

4647
if (solids) {
47-
if (polygon.size() < 3) {
48+
if (polygon_size < 3) {
4849
return;
4950
}
5051

@@ -58,19 +59,19 @@ void CollisionPolygon2D::_build_polygon() {
5859
}
5960

6061
} else {
61-
if (polygon.size() < 2) {
62+
if (polygon_size < 2) {
6263
return;
6364
}
6465

6566
Ref<ConcavePolygonShape2D> concave = memnew(ConcavePolygonShape2D);
6667

6768
Vector<Vector2> segments;
68-
segments.resize(polygon.size() * 2);
69+
segments.resize(polygon_size * 2);
6970
Vector2 *w = segments.ptrw();
7071

71-
for (int i = 0; i < polygon.size(); i++) {
72+
for (int i = 0; i < polygon_size; i++) {
7273
w[(i << 1) + 0] = polygon[i];
73-
w[(i << 1) + 1] = polygon[(i + 1) % polygon.size()];
74+
w[(i << 1) + 1] = polygon[(i + 1) % polygon_size];
7475
}
7576

7677
concave->set_segments(segments);

scene/3d/lightmap_gi.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -911,10 +911,11 @@ LightmapGI::BakeError LightmapGI::bake(Node *p_from_node, String p_image_data_pa
911911
GenProbesOctree octree;
912912
octree.size = subdiv;
913913

914-
for (int i = 0; i < mesh_data.size(); i++) {
914+
const int mesh_data_size = mesh_data.size();
915+
for (int i = 0; i < mesh_data_size; i++) {
915916
if (p_bake_step) {
916-
float p = (float)(i) / mesh_data.size();
917-
p_bake_step(0.3 + p * 0.1, vformat(RTR("Creating probes from mesh %d/%d"), i, mesh_data.size()), p_bake_userdata, false);
917+
float p = (float)(i) / mesh_data_size;
918+
p_bake_step(0.3 + p * 0.1, vformat(RTR("Creating probes from mesh %d/%d"), i, mesh_data_size), p_bake_userdata, false);
918919
}
919920

920921
for (int j = 0; j < mesh_data[i].points.size(); j += 3) {

0 commit comments

Comments
 (0)