bge: de-duplicate cleanup code for empty mesh error case

This commit is contained in:
Campbell Barton 2013-07-23 10:59:29 +00:00
parent d9b0f660c9
commit fb92835819

@ -1590,17 +1590,7 @@ bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, DerivedMesh* dm,
/* Can happen with ngons */ /* Can happen with ngons */
if (!tot_bt_verts) { if (!tot_bt_verts) {
m_shapeType = PHY_SHAPE_NONE; goto cleanup_empty_mesh;
m_meshObject = NULL;
m_vertexArray.clear();
m_polygonIndexArray.clear();
m_triFaceArray.clear();
m_triFaceUVcoArray.clear();
if (free_dm) {
dm->release(dm);
dm = NULL;
}
return false;
} }
m_vertexArray.resize(tot_bt_verts*3); m_vertexArray.resize(tot_bt_verts*3);
@ -1679,17 +1669,7 @@ bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, DerivedMesh* dm,
/* Can happen with ngons */ /* Can happen with ngons */
if (!tot_bt_verts) { if (!tot_bt_verts) {
m_shapeType = PHY_SHAPE_NONE; goto cleanup_empty_mesh;
m_meshObject = NULL;
m_vertexArray.clear();
m_polygonIndexArray.clear();
m_triFaceArray.clear();
m_triFaceUVcoArray.clear();
if (free_dm) {
dm->release(dm);
dm = NULL;
}
return false;
} }
m_vertexArray.resize(tot_bt_verts*3); m_vertexArray.resize(tot_bt_verts*3);
@ -1834,6 +1814,19 @@ bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, DerivedMesh* dm,
m_meshShapeMap.insert(std::pair<RAS_MeshObject*,CcdShapeConstructionInfo*>(meshobj,this)); m_meshShapeMap.insert(std::pair<RAS_MeshObject*,CcdShapeConstructionInfo*>(meshobj,this));
} }
return true; return true;
cleanup_empty_mesh:
m_shapeType = PHY_SHAPE_NONE;
m_meshObject = NULL;
m_vertexArray.clear();
m_polygonIndexArray.clear();
m_triFaceArray.clear();
m_triFaceUVcoArray.clear();
if (free_dm) {
dm->release(dm);
}
return false;
} }
#include <cstdio> #include <cstdio>