forked from bartvdbraak/blender
fix for un-initialized memory use for modal inset/bevel.
This commit is contained in:
parent
bdc10e7b41
commit
6e9e758d60
@ -103,7 +103,7 @@ enum {
|
||||
* returns 1 if successful, 0 otherwise (usually means there's no selection)
|
||||
* (if 0 is returns, *vec is unmodified)
|
||||
* */
|
||||
int calculateTransformCenter(struct bContext *C, int centerMode, float *cent3d, int *cent2d);
|
||||
int calculateTransformCenter(struct bContext *C, int centerMode, float cent3d[3], int cent2d[2]);
|
||||
|
||||
struct TransInfo;
|
||||
struct ScrArea;
|
||||
|
@ -4498,13 +4498,18 @@ static int edbm_bevel_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
BevelData *opdata;
|
||||
float mlen[2];
|
||||
|
||||
if (!edbm_bevel_init(C, op, TRUE))
|
||||
if (!edbm_bevel_init(C, op, TRUE)) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
/* initialize mouse values */
|
||||
opdata = op->customdata;
|
||||
|
||||
calculateTransformCenter(C, V3D_CENTROID, NULL, opdata->mcenter);
|
||||
/* initialize mouse values */
|
||||
if (!calculateTransformCenter(C, V3D_CENTROID, NULL, opdata->mcenter)) {
|
||||
/* in this case the tool will likely do nothing,
|
||||
* ideally this will never happen and should be checked for above */
|
||||
opdata->mcenter[0] = opdata->mcenter[1] = 0;
|
||||
}
|
||||
mlen[0] = opdata->mcenter[0] - event->mval[0];
|
||||
mlen[1] = opdata->mcenter[1] - event->mval[1];
|
||||
opdata->initial_length = len_v2(mlen);
|
||||
@ -4795,8 +4800,12 @@ static int edbm_inset_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||
|
||||
opdata = op->customdata;
|
||||
|
||||
calculateTransformCenter(C, V3D_CENTROID, NULL, opdata->mcenter);
|
||||
/* initialize mouse values */
|
||||
if (!calculateTransformCenter(C, V3D_CENTROID, NULL, opdata->mcenter)) {
|
||||
/* in this case the tool will likely do nothing,
|
||||
* ideally this will never happen and should be checked for above */
|
||||
opdata->mcenter[0] = opdata->mcenter[1] = 0;
|
||||
}
|
||||
mlen[0] = opdata->mcenter[0] - event->mval[0];
|
||||
mlen[1] = opdata->mcenter[1] - event->mval[1];
|
||||
opdata->initial_length = len_v2(mlen);
|
||||
|
@ -1178,10 +1178,10 @@ int transformEvent(TransInfo *t, wmEvent *event)
|
||||
return OPERATOR_PASS_THROUGH;
|
||||
}
|
||||
|
||||
int calculateTransformCenter(bContext *C, int centerMode, float *cent3d, int *cent2d)
|
||||
int calculateTransformCenter(bContext *C, int centerMode, float cent3d[3], int cent2d[2])
|
||||
{
|
||||
TransInfo *t = MEM_callocN(sizeof(TransInfo), "TransInfo data");
|
||||
int success = 1;
|
||||
int success;
|
||||
|
||||
t->state = TRANS_RUNNING;
|
||||
|
||||
@ -1196,10 +1196,10 @@ int calculateTransformCenter(bContext *C, int centerMode, float *cent3d, int *ce
|
||||
t->around = centerMode; // override userdefined mode
|
||||
|
||||
if (t->total == 0) {
|
||||
success = 0;
|
||||
success = FALSE;
|
||||
}
|
||||
else {
|
||||
success = 1;
|
||||
success = TRUE;
|
||||
|
||||
calculateCenter(t);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user