Commit: f0a3aa88c81d088bf641b0546eb0d1dd98592b08
Author: Campbell Barton
Date:   Tue Apr 10 08:42:34 2018 +0200
Branches: temp-object-multi-mode
https://developer.blender.org/rBf0a3aa88c81d088bf641b0546eb0d1dd98592b08

Use macro for case of single TransHandle access

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

M       source/blender/editors/transform/transform.c
M       source/blender/editors/transform/transform.h
M       source/blender/editors/transform/transform_conversions.c
M       source/blender/editors/transform/transform_generics.c

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

diff --git a/source/blender/editors/transform/transform.c 
b/source/blender/editors/transform/transform.c
index 2ed100eb57e..a872e9e9294 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -621,9 +621,7 @@ static void viewRedrawForce(const bContext *C, TransInfo *t)
                        // XXX how to deal with lock?
                        SpaceImage *sima = (SpaceImage *)t->sa->spacedata.first;
                        if (sima->lock) {
-                               FOREACH_THAND (t, th) {
-                                       WM_event_add_notifier(C, NC_GEOM | 
ND_DATA, th->obedit->data);
-                               }
+                               WM_event_add_notifier(C, NC_GEOM | ND_DATA, 
OBEDIT_FROM_VIEW_LAYER(t->view_layer)->data);
                        }
                        else {
                                ED_area_tag_redraw(t->sa);
diff --git a/source/blender/editors/transform/transform.h 
b/source/blender/editors/transform/transform.h
index 103e09117e0..2f8e8293f5f 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -847,6 +847,8 @@ bool checkUseAxisMatrix(TransInfo *t);
 
 /* This is to be replaced, just to get things compiling early on. */
 #define THAND_FIRST_EVIL(t) (&(t)->thand[0])
+/* For cases we _know_ there is only one handle. */
+#define THAND_FIRST_SINGLE(t) (BLI_assert((t)->thand_len == 1), 
(&(t)->thand[0]))
 
 #define FOREACH_THAND(t, th) \
        for (TransHandle *th = t->thand, *th_end = t->thand + t->thand_len; th 
!= th_end; th++)
diff --git a/source/blender/editors/transform/transform_conversions.c 
b/source/blender/editors/transform/transform_conversions.c
index bcb4164f5d3..7ad2d58a05c 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -2854,9 +2854,7 @@ void flushTransSeq(TransInfo *t)
        TransDataSeq *tdsq = NULL;
        Sequence *seq;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* prevent updating the same seq twice
         * if the transdata order is changed this will mess up
@@ -3316,9 +3314,7 @@ static void createTransNlaData(bContext *C, TransInfo *t)
        
        int count = 0;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* determine what type of data we are operating on */
        if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -3917,9 +3913,7 @@ void flushTransIntFrameActionData(TransInfo *t)
        tGPFtransdata *tfd = t->custom.type.data;
        int i;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* flush data! */
        for (i = 0; i < th->total; i++, tfd++) {
@@ -4079,9 +4073,7 @@ static void createTransActionData(bContext *C, TransInfo 
*t)
                return;
        }
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* allocate memory for data */
        th->total = count;
@@ -4481,9 +4473,7 @@ static void createTransGraphEditData(bContext *C, 
TransInfo *t)
                return;
        }
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* allocate memory for data */
        th->total = count;
@@ -4780,9 +4770,7 @@ static void beztmap_to_data(TransInfo *t, FCurve *fcu, 
BeztMap *bezms, int totve
        int i, j;
        char *adjusted;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* dynamically allocate an array of chars to mark whether an TransData's
         * pointers have been fixed already, so that we don't override ones 
that are
@@ -4901,9 +4889,7 @@ void flushTransGraphData(TransInfo *t)
        double secf = FPS;
        int a;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* flush to 2d vector from internally used 3d vector */
        for (a = 0, td = th->data, td2d = th->data2d, tdg = t->custom.type.data;
@@ -5273,9 +5259,7 @@ static void freeSeqData(TransInfo *t, TransCustomData 
*custom_data)
 {
        Editing *ed = BKE_sequencer_editing_get(t->scene, false);
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        if (ed != NULL) {
 
@@ -5466,9 +5450,7 @@ static void createTransSeqData(bContext *C, TransInfo *t)
 
        int count = 0;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        if (ed == NULL) {
                th->total = 0;
@@ -6707,9 +6689,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
 
                BLI_assert(t->flag & (T_OBJECT | T_TEXTURE));
 
-               /* only ever one */
-               BLI_assert(t->thand_len == 1);
-               TransHandle *th = &t->thand[0];
+               TransHandle *th = THAND_FIRST_SINGLE(t);
 
                for (i = 0; i < th->total; i++) {
                        TransData *td = th->data + i;
@@ -6784,9 +6764,7 @@ static void createTransObject(bContext *C, TransInfo *t)
 
        set_trans_object_base_flags(t);
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* count */
        th->total = CTX_DATA_COUNT(C, selected_objects);
@@ -7156,9 +7134,7 @@ static void createTransTrackingTracksData(bContext *C, 
TransInfo *t)
        TransDataTracking *tdt;
        int framenr = ED_space_clip_get_clip_frame_number(sc);
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* count */
        th->total = 0;
@@ -7299,9 +7275,7 @@ static void createTransTrackingCurvesData(bContext *C, 
TransInfo *t)
 
        BKE_movieclip_get_size(clip, &sc->user, &width, &height);
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* count */
        th->total = 0;
@@ -7378,9 +7352,7 @@ static void createTransTrackingData(bContext *C, 
TransInfo *t)
        MovieClip *clip = ED_space_clip_get_clip(sc);
        int width, height;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        th->total = 0;
 
@@ -7407,9 +7379,7 @@ static void cancelTransTracking(TransInfo *t)
        int i, framenr = ED_space_clip_get_clip_frame_number(sc);
        TransDataTracking *tdt_array = t->custom.type.data;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        i = 0;
        while (i < th->total) {
@@ -7469,9 +7439,7 @@ void flushTransTracking(TransInfo *t)
        if (t->state == TRANS_CANCEL)
                cancelTransTracking(t);
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* flush to 2d vector from internally used 3d vector */
        for (a = 0, td = th->data, td2d = th->data2d, tdt = 
t->custom.type.data; a < th->total; a++, td2d++, td++, tdt++) {
@@ -7740,9 +7708,7 @@ static void createTransMaskingData(bContext *C, TransInfo 
*t)
        const bool is_prop_edit = (t->flag & T_PROP_EDIT);
        float asp[2];
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        th->total = 0;
 
@@ -7867,9 +7833,7 @@ void flushTransMasking(TransInfo *t)
        int a;
        float asp[2], inv[2];
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        ED_mask_get_aspect(t->sa, t->ar, &asp[0], &asp[1]);
        inv[0] = 1.0f / asp[0];
@@ -7995,9 +7959,7 @@ static void createTransPaintCurveVerts(bContext *C, 
TransInfo *t)
        int i;
        int total = 0;
 
-               /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        th->total = 0;
 
@@ -8061,9 +8023,7 @@ void flushTransPaintCurve(TransInfo *t)
 {
        int i;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        TransData2D *td2d = th->data2d;
        TransDataPaintCurve *tdpc = t->custom.type.data;
@@ -8088,9 +8048,7 @@ static void createTransGPencil(bContext *C, TransInfo *t)
        const bool is_prop_edit = (t->flag & T_PROP_EDIT) != 0;
        const bool is_prop_edit_connected = (t->flag & T_PROP_CONNECTED) != 0;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* == Grease Pencil Strokes to Transform Data ==
         * Grease Pencil stroke points can be a mixture of 2D (screen-space),
diff --git a/source/blender/editors/transform/transform_generics.c 
b/source/blender/editors/transform/transform_generics.c
index 9e80804d062..6517a294d8b 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -440,9 +440,7 @@ static void recalcData_nla(TransInfo *t)
        double secf = FPS;
        int i;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        /* for each strip we've got, perform some additional validation of the 
values that got set before
         * using RNA to set the value (which does some special operations when 
setting these values to make
@@ -993,9 +991,7 @@ static void recalcData_sequencer(TransInfo *t)
        int a;
        Sequence *seq_prev = NULL;
 
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        for (a = 0, td = th->data; a < th->total; a++, td++) {
                TransDataSeq *tdsq = (TransDataSeq *) td->extra;
@@ -1022,9 +1018,7 @@ static void recalcData_sequencer(TransInfo *t)
 /* force recalculation of triangles during transformation */
 static void recalcData_gpencil_strokes(TransInfo *t)
 {
-       /* only ever one */
-       BLI_assert(t->thand_len == 1);
-       TransHandle *th = &t->thand[0];
+       TransHandle *th = THAND_FIRST_SINGLE(t);
 
        TransData *td = th->data;
        for (int i = 0; i < th->total; i++, td++) {
@@ -1196,8 +1190,10 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator 
*op, const wmEvent *eve
                uint o

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to