fix misisng edge hash free when CDDM_tessfaces_to_faces ran on an empty mesh

This commit is contained in:
2011-11-23 17:48:55 +00:00
parent 74c6c91ba6
commit d8f895c3b3

View File

@@ -2646,10 +2646,8 @@ void CDDM_tessfaces_to_faces(DerivedMesh *dm)
CDDerivedMesh *cddm = (CDDerivedMesh*)dm; CDDerivedMesh *cddm = (CDDerivedMesh*)dm;
MFace *mf; MFace *mf;
MEdge *me; MEdge *me;
MLoop *ml;
MPoly *mp;
EdgeHash *eh = BLI_edgehash_new(); EdgeHash *eh = BLI_edgehash_new();
int i, l, totloop, *polyindex; int i, totloop;
/*ensure we have all the edges we need*/ /*ensure we have all the edges we need*/
CDDM_calc_edges(dm); CDDM_calc_edges(dm);
@@ -2672,7 +2670,10 @@ void CDDM_tessfaces_to_faces(DerivedMesh *dm)
cddm->dm.numLoopData = totloop; cddm->dm.numLoopData = totloop;
cddm->dm.numPolyData = cddm->dm.numFaceData; cddm->dm.numPolyData = cddm->dm.numFaceData;
if (!totloop) return; if (totloop) {
MLoop *ml;
MPoly *mp;
int l, *polyindex;
cddm->mloop = MEM_callocN(sizeof(MLoop)*totloop, "cddm->mloop in CDDM_tessfaces_to_faces"); cddm->mloop = MEM_callocN(sizeof(MLoop)*totloop, "cddm->mloop in CDDM_tessfaces_to_faces");
cddm->mpoly = MEM_callocN(sizeof(MPoly)*cddm->dm.numFaceData, "cddm->mpoly in CDDM_tessfaces_to_faces"); cddm->mpoly = MEM_callocN(sizeof(MPoly)*cddm->dm.numFaceData, "cddm->mpoly in CDDM_tessfaces_to_faces");
@@ -2714,6 +2715,7 @@ void CDDM_tessfaces_to_faces(DerivedMesh *dm)
*polyindex = i; *polyindex = i;
} }
}
BLI_edgehash_free(eh, NULL); BLI_edgehash_free(eh, NULL);
} }