== 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:
@@ -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)
|
void sculptmode_free_session(Scene *sce)
|
||||||
{
|
{
|
||||||
SculptSession *ss= sce->sculptdata.session;
|
SculptSession *ss= sce->sculptdata.session;
|
||||||
@@ -238,7 +238,7 @@ void sculptmode_free_session(Scene *sce)
|
|||||||
sculptmode_free_vertexusers(ss);
|
sculptmode_free_vertexusers(ss);
|
||||||
if(ss->texcache)
|
if(ss->texcache)
|
||||||
MEM_freeN(ss->texcache);
|
MEM_freeN(ss->texcache);
|
||||||
sculptmode_propset_end(1);
|
sculptmode_propset_end(ss, 1);
|
||||||
MEM_freeN(ss);
|
MEM_freeN(ss);
|
||||||
sce->sculptdata.session= NULL;
|
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();
|
if(ss && ss->propset) {
|
||||||
PropsetData *pd= ss ? ss->propset : NULL;
|
PropsetData *pd= ss->propset;
|
||||||
if(pd) {
|
|
||||||
if(cancel) {
|
if(cancel) {
|
||||||
sculptmode_brush()->size= pd->origsize;
|
sculptmode_brush()->size= pd->origsize;
|
||||||
sculptmode_brush()->strength= pd->origstrength;
|
sculptmode_brush()->strength= pd->origstrength;
|
||||||
@@ -1366,7 +1366,7 @@ void sculptmode_propset(unsigned short event)
|
|||||||
while(get_mbut()==L_MOUSE);
|
while(get_mbut()==L_MOUSE);
|
||||||
case RETKEY:
|
case RETKEY:
|
||||||
case PADENTER:
|
case PADENTER:
|
||||||
sculptmode_propset_end(0);
|
sculptmode_propset_end(sculpt_session(), 0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user