use reserve argument for more edgehashs

This commit is contained in:
Campbell Barton 2013-08-24 14:40:15 +00:00
parent 8811e521c0
commit 25ffb79a0b
3 changed files with 6 additions and 4 deletions

@ -1241,10 +1241,12 @@ static void make_edges_mdata_extend(MEdge **r_alledge, int *r_totedge,
int totedge = *r_totedge;
int totedge_new;
EdgeHash *eh;
unsigned int eh_reserve;
const MPoly *mp;
int i;
eh = BLI_edgehash_new(__func__);
eh_reserve = max_ii(totedge, BLI_EDGEHASH_SIZE_GUESS_FROM_POLYS(totpoly));
eh = BLI_edgehash_new_ex(__func__, eh_reserve);
for (i = 0, mp = mpoly; i < totpoly; i++, mp++) {
BKE_mesh_poly_edgehash_insert(eh, mp, mloop + mp->loopstart);
@ -2308,7 +2310,7 @@ void BKE_mesh_convert_mfaces_to_mpolys_ex(ID *id, CustomData *fdata, CustomData
CustomData_external_read(fdata, id, CD_MASK_MDISPS, totface_i);
}
eh = BLI_edgehash_new(__func__);
eh = BLI_edgehash_new_ex(__func__, totedge_i);
/* build edge hash */
me = medge;

@ -216,7 +216,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
bool do_edge_recalc = false;
EdgeHash *edge_hash = BLI_edgehash_new(__func__);
EdgeHash *edge_hash = BLI_edgehash_new_ex(__func__, totedge);
BLI_assert(!(do_fixes && mesh == NULL));

@ -1332,7 +1332,7 @@ static void ccgDM_copyFinalLoopArray(DerivedMesh *dm, MLoop *mloop)
if (!ccgdm->ehash) {
MEdge *medge;
ccgdm->ehash = BLI_edgehash_new(__func__);
ccgdm->ehash = BLI_edgehash_new_ex(__func__, ccgdm->dm.numEdgeData);
medge = ccgdm->dm.getEdgeArray((DerivedMesh *)ccgdm);
for (i = 0; i < ccgdm->dm.numEdgeData; i++) {