[Bf-blender-cvs] [8522b429b56] master: Transform: Fixes after recent refactor

Sergey Sharybin noreply at git.blender.org
Tue Jun 9 12:19:50 CEST 2020


Commit: 8522b429b56838e343c5cbe8889dcbf792e23a38
Author: Sergey Sharybin
Date:   Tue Jun 9 12:17:00 2020 +0200
Branches: master
https://developer.blender.org/rB8522b429b56838e343c5cbe8889dcbf792e23a38

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().

===================================================================

M	source/blender/editors/transform/transform_convert.c
M	source/blender/editors/transform/transform_convert.h
M	source/blender/editors/transform/transform_convert_mesh.c

===================================================================

diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c
index e40af2feafb..fba3370dcbc 100644
--- a/source/blender/editors/transform/transform_convert.c
+++ b/source/blender/editors/transform/transform_convert.c
@@ -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;
diff --git a/source/blender/editors/transform/transform_convert.h b/source/blender/editors/transform/transform_convert.h
index 4a6d56f6630..2465e0e99b3 100644
--- a/source/blender/editors/transform/transform_convert.h
+++ b/source/blender/editors/transform/transform_convert.h
@@ -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);
diff --git a/source/blender/editors/transform/transform_convert_mesh.c b/source/blender/editors/transform/transform_convert_mesh.c
index 6bee3760f4d..710ddf60176 100644
--- a/source/blender/editors/transform/transform_convert_mesh.c
+++ b/source/blender/editors/transform/transform_convert_mesh.c
@@ -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__);



More information about the Bf-blender-cvs mailing list