forked from bartvdbraak/blender
Fix T40115: Smoke simulator memory leak with high poly mesh emitter.
Own error, all kudos go to scorpion81 (Martin Felke) for the nvestigation & patch!
This commit is contained in:
parent
1b1b71f697
commit
355709432e
@ -1552,8 +1552,7 @@ static void sample_derivedmesh(
|
||||
|
||||
static void emit_from_derivedmesh(Object *flow_ob, SmokeDomainSettings *sds, SmokeFlowSettings *sfs, EmissionMap *em, float dt)
|
||||
{
|
||||
if (!sfs->dm) return;
|
||||
{
|
||||
if (sfs->dm) {
|
||||
DerivedMesh *dm;
|
||||
int defgrp_index = sfs->vgroup_density - 1;
|
||||
MDeformVert *dvert = NULL;
|
||||
@ -1684,10 +1683,17 @@ static void emit_from_derivedmesh(Object *flow_ob, SmokeDomainSettings *sds, Smo
|
||||
free_bvhtree_from_mesh(&treeData);
|
||||
/* restore original mverts */
|
||||
CustomData_set_layer(&dm->vertData, CD_MVERT, mvert_orig);
|
||||
if (mvert)
|
||||
MEM_freeN(mvert);
|
||||
|
||||
if (vert_vel) MEM_freeN(vert_vel);
|
||||
if (mvert) {
|
||||
MEM_freeN(mvert);
|
||||
}
|
||||
if (vert_vel) {
|
||||
MEM_freeN(vert_vel);
|
||||
}
|
||||
if (dm) {
|
||||
dm->needsFree = 1;
|
||||
dm->release(dm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user