forked from bartvdbraak/blender
== Sculpt Mode ==
Added a SculptSession parameter to sculptmode_propset_end, to avoid propset_end creating a new session (propset_end is called when freeing the session, so this can cause a memory leak.)
This commit is contained in:
parent
4f9cb4c710
commit
04337d4ada
@ -230,7 +230,7 @@ void sculptmode_free_vertexusers(SculptSession *ss)
|
||||
}
|
||||
}
|
||||
|
||||
void sculptmode_propset_end(int);
|
||||
void sculptmode_propset_end(SculptSession *ss, int);
|
||||
void sculptmode_free_session(Scene *sce)
|
||||
{
|
||||
SculptSession *ss= sce->sculptdata.session;
|
||||
@ -238,7 +238,7 @@ void sculptmode_free_session(Scene *sce)
|
||||
sculptmode_free_vertexusers(ss);
|
||||
if(ss->texcache)
|
||||
MEM_freeN(ss->texcache);
|
||||
sculptmode_propset_end(1);
|
||||
sculptmode_propset_end(ss, 1);
|
||||
MEM_freeN(ss);
|
||||
sce->sculptdata.session= NULL;
|
||||
}
|
||||
@ -1222,11 +1222,11 @@ void sculptmode_propset_header()
|
||||
}
|
||||
}
|
||||
|
||||
void sculptmode_propset_end(int cancel)
|
||||
void sculptmode_propset_end(SculptSession *ss, int cancel)
|
||||
{
|
||||
SculptSession *ss= sculpt_session();
|
||||
PropsetData *pd= ss ? ss->propset : NULL;
|
||||
if(pd) {
|
||||
if(ss && ss->propset) {
|
||||
PropsetData *pd= ss->propset;
|
||||
|
||||
if(cancel) {
|
||||
sculptmode_brush()->size= pd->origsize;
|
||||
sculptmode_brush()->strength= pd->origstrength;
|
||||
@ -1366,7 +1366,7 @@ void sculptmode_propset(unsigned short event)
|
||||
while(get_mbut()==L_MOUSE);
|
||||
case RETKEY:
|
||||
case PADENTER:
|
||||
sculptmode_propset_end(0);
|
||||
sculptmode_propset_end(sculpt_session(), 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user