Skip to content

Commit d064ffe

Browse files
authored
Merge pull request #1054 from Spartan322/4.4-cherry-pick/c4724_fix
[4.4] Fix MSVC warning for potential mod by 0 (C4724)
2 parents eb7afbd + 4ac33e5 commit d064ffe

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

editor/plugins/gizmos/collision_polygon_3d_gizmo_plugin.cpp

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,10 @@ void CollisionPolygon3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
100100
float depth = polygon->get_depth() * 0.5;
101101

102102
Vector<Vector3> lines;
103-
for (int i = 0; i < points.size(); i++) {
104-
int n = (i + 1) % points.size();
103+
const int points_size = points.size();
104+
105+
for (int i = 0; i < points_size; i++) {
106+
int n = (i + 1) % points_size;
105107
lines.push_back(Vector3(points[i].x, points[i].y, depth));
106108
lines.push_back(Vector3(points[n].x, points[n].y, depth));
107109
lines.push_back(Vector3(points[i].x, points[i].y, -depth));
@@ -121,24 +123,25 @@ void CollisionPolygon3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
121123
// Determine orientation of the 2D polygon's vertices to determine
122124
// which direction to draw outer polygons.
123125
float signed_area = 0.0f;
124-
for (int i = 0; i < points.size(); i++) {
125-
const int j = (i + 1) % points.size();
126+
for (int i = 0; i < points_size; i++) {
127+
const int j = (i + 1) % points_size;
126128
signed_area += points[i].x * points[j].y - points[j].x * points[i].y;
127129
}
128130

129131
// Generate triangles for the sides of the extruded polygon.
130-
for (int i = 0; i < points.size(); i++) {
132+
for (int i = 0; i < points_size; i++) {
131133
verts.push_back(Vector3(points[i].x, points[i].y, depth));
132134
verts.push_back(Vector3(points[i].x, points[i].y, -depth));
133135

134136
colors.push_back(collision_color);
135137
colors.push_back(collision_color);
136138
}
137139

138-
for (int i = 0; i < verts.size(); i += 2) {
139-
const int j = (i + 1) % verts.size();
140-
const int k = (i + 2) % verts.size();
141-
const int l = (i + 3) % verts.size();
140+
const int verts_size = verts.size();
141+
for (int i = 0; i < verts_size; i += 2) {
142+
const int j = (i + 1) % verts_size;
143+
const int k = (i + 2) % verts_size;
144+
const int l = (i + 3) % verts_size;
142145

143146
indices.push_back(i);
144147
if (signed_area < 0) {
@@ -167,18 +170,19 @@ void CollisionPolygon3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
167170
Vector<Color> cap_colours_bottom;
168171
Vector<int> cap_indices_bottom;
169172

170-
const int index_offset = verts.size();
173+
const int index_offset = verts_size;
171174

172175
const Vector<Vector2> &convex = decomp[i];
176+
const int convex_size = convex.size();
173177

174-
for (int j = 0; j < convex.size(); j++) {
178+
for (int j = 0; j < convex_size; j++) {
175179
cap_verts_bottom.push_back(Vector3(convex[j].x, convex[j].y, -depth));
176180
cap_colours_bottom.push_back(collision_color);
177181
}
178182

179-
if (convex.size() >= 3) {
180-
for (int j = 1; j < convex.size(); j++) {
181-
const int k = (j + 1) % convex.size();
183+
if (convex_size >= 3) {
184+
for (int j = 1; j < convex_size; j++) {
185+
const int k = (j + 1) % convex_size;
182186

183187
cap_indices_bottom.push_back(index_offset + 0);
184188
cap_indices_bottom.push_back(index_offset + j);
@@ -196,18 +200,19 @@ void CollisionPolygon3DGizmoPlugin::redraw(EditorNode3DGizmo *p_gizmo) {
196200
Vector<Color> cap_colours_top;
197201
Vector<int> cap_indices_top;
198202

199-
const int index_offset = verts.size();
203+
const int index_offset = verts_size;
200204

201205
const Vector<Vector2> &convex = decomp[i];
206+
const int convex_size = convex.size();
202207

203-
for (int j = 0; j < convex.size(); j++) {
208+
for (int j = 0; j < convex_size; j++) {
204209
cap_verts_top.push_back(Vector3(convex[j].x, convex[j].y, depth));
205210
cap_colours_top.push_back(collision_color);
206211
}
207212

208-
if (convex.size() >= 3) {
209-
for (int j = 1; j < convex.size(); j++) {
210-
const int k = (j + 1) % convex.size();
213+
if (convex_size >= 3) {
214+
for (int j = 1; j < convex_size; j++) {
215+
const int k = (j + 1) % convex_size;
211216

212217
cap_indices_top.push_back(index_offset + k);
213218
cap_indices_top.push_back(index_offset + j);

0 commit comments

Comments
 (0)