bugfix [#23158] Translate operator leaks memory if nothing selected
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user