Transform: Fixes after recent refactor

Pointed by strict compiler warnings, but some of the reports were
actually a real bugs:

- Access uninitialized memory of td_mirror_iter.

  Assuming that iterator is to point to the first element of the
  data array.

- Lattice's recalc data was never called.

There is also a fix for redundant declaration of recalcData() and
missing declaration of recalcData_lattice().
This commit is contained in:
2020-06-09 12:17:00 +02:00
parent 5620a09e0d
commit 8522b429b5
3 changed files with 5 additions and 3 deletions

View File

@@ -3094,9 +3094,11 @@ void recalcData(TransInfo *t)
recalcData_tracking(t);
break;
case TC_MBALL_VERTS:
case TC_LATTICE_VERTS:
recalcData_obedit(t);
break;
case TC_LATTICE_VERTS:
recalcData_lattice(t);
break;
case TC_PARTICLE_VERTS:
recalcData_particles(t);
break;

View File

@@ -57,7 +57,6 @@ void sort_trans_data_dist(TransInfo *t);
void createTransData(struct bContext *C, TransInfo *t);
bool clipUVTransform(TransInfo *t, float vec[2], const bool resize);
void clipUVData(TransInfo *t);
void recalcData(TransInfo *t);
/* transform_convert_mesh.c */
void trans_mesh_customdata_correction_init(TransInfo *t);
@@ -136,6 +135,7 @@ void recalcData_gpencil_strokes(TransInfo *t);
/* transform_convert_lattice.c */
void createTransLatticeVerts(TransInfo *t);
void recalcData_lattice(TransInfo *t);
/* transform_convert_mask.c */
void createTransMaskingData(bContext *C, TransInfo *t);

View File

@@ -535,7 +535,7 @@ static TransDataMirror *editmesh_mirror_data_calc(BMEditMesh *em,
TransDataMirror *td_mirror_iter, *td_mirror = NULL;
if (mirror_elem_len != 0) {
td_mirror = MEM_mallocN(mirror_elem_len * sizeof(*td_mirror), __func__);
td_mirror_iter = &td_mirror_iter[0];
td_mirror_iter = &td_mirror[0];
*r_mirror_bitmap = BLI_BITMAP_NEW(bm->totvert, __func__);