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;
MFace *mf;
MEdge *me;
MLoop *ml;
MPoly *mp;
EdgeHash *eh = BLI_edgehash_new();
int i, l, totloop, *polyindex;
int i, totloop;
/*ensure we have all the edges we need*/
CDDM_calc_edges(dm);
@@ -2672,7 +2670,10 @@ void CDDM_tessfaces_to_faces(DerivedMesh *dm)
cddm->dm.numLoopData = totloop;
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->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;
}
}
BLI_edgehash_free(eh, NULL);
}