bugfix [#23158] Translate operator leaks memory if nothing selected

This commit is contained in:
Campbell Barton
2010-08-03 22:36:59 +00:00
parent 81b8bdc353
commit 0c659da03b
2 changed files with 8 additions and 2 deletions

View File

@@ -1460,6 +1460,7 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator *op)
}
}
/* note: caller needs to free 't' on a 0 return */
int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int mode)
{
int options = 0;

View File

@@ -281,7 +281,7 @@ static int transformops_data(bContext *C, wmOperator *op, wmEvent *event)
int retval = 1;
if (op->customdata == NULL)
{
TransInfo *t = MEM_callocN(sizeof(TransInfo), "TransInfo data");
TransInfo *t = MEM_callocN(sizeof(TransInfo), "TransInfo data2");
TransformModeItem *tmode;
int mode = -1;
@@ -303,7 +303,12 @@ static int transformops_data(bContext *C, wmOperator *op, wmEvent *event)
G.moving = 1;
/* store data */
op->customdata = t;
if(retval) {
op->customdata = t;
}
else {
MEM_freeN(t);
}
}
return retval; /* return 0 on error */