Merge pull request #38674 from madmiraal/fix-physicsw-warning-3.2

[3.2] Fix 'physicsw' may be used uninitialized warning in csg_shape.cpp
This commit is contained in:
Rémi Verschelde 2020-05-11 21:19:34 +02:00 committed by GitHub
commit 44c1c5840c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 20 deletions

View File

@ -340,20 +340,12 @@ void CSGShape::_update_shape() {
} }
} }
//fill arrays // Update collision faces.
PoolVector<Vector3> physics_faces;
bool fill_physics_faces = false;
if (root_collision_shape.is_valid()) { if (root_collision_shape.is_valid()) {
PoolVector<Vector3> physics_faces;
physics_faces.resize(n->faces.size() * 3); physics_faces.resize(n->faces.size() * 3);
fill_physics_faces = true; PoolVector<Vector3>::Write physicsw = physics_faces.write();
}
{
PoolVector<Vector3>::Write physicsw;
if (fill_physics_faces) {
physicsw = physics_faces.write();
}
for (int i = 0; i < n->faces.size(); i++) { for (int i = 0; i < n->faces.size(); i++) {
@ -363,12 +355,24 @@ void CSGShape::_update_shape() {
SWAP(order[1], order[2]); SWAP(order[1], order[2]);
} }
if (fill_physics_faces) {
physicsw[i * 3 + 0] = n->faces[i].vertices[order[0]]; physicsw[i * 3 + 0] = n->faces[i].vertices[order[0]];
physicsw[i * 3 + 1] = n->faces[i].vertices[order[1]]; physicsw[i * 3 + 1] = n->faces[i].vertices[order[1]];
physicsw[i * 3 + 2] = n->faces[i].vertices[order[2]]; physicsw[i * 3 + 2] = n->faces[i].vertices[order[2]];
} }
root_collision_shape->set_faces(physics_faces);
}
//fill arrays
{
for (int i = 0; i < n->faces.size(); i++) {
int order[3] = { 0, 1, 2 };
if (n->faces[i].invert) {
SWAP(order[1], order[2]);
}
int mat = n->faces[i].material; int mat = n->faces[i].material;
ERR_CONTINUE(mat < -1 || mat >= face_count.size()); ERR_CONTINUE(mat < -1 || mat >= face_count.size());
int idx = mat == -1 ? face_count.size() - 1 : mat; int idx = mat == -1 ? face_count.size() - 1 : mat;
@ -458,10 +462,6 @@ void CSGShape::_update_shape() {
root_mesh->surface_set_material(idx, surfaces[i].material); root_mesh->surface_set_material(idx, surfaces[i].material);
} }
if (root_collision_shape.is_valid()) {
root_collision_shape->set_faces(physics_faces);
}
set_base(root_mesh->get_rid()); set_base(root_mesh->get_rid());
} }
AABB CSGShape::get_aabb() const { AABB CSGShape::get_aabb() const {