fix misisng edge hash free when CDDM_tessfaces_to_faces ran on an empty mesh
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user