[Bf-blender-cvs] [1e993d2b782] greasepencil-object: GPencil: Cleanup more loops with FOREACH macro

Antonio Vazquez noreply at git.blender.org
Wed Feb 26 16:06:52 CET 2020


Commit: 1e993d2b78256a387022236d892ffa8d5f44c38c
Author: Antonio Vazquez
Date:   Wed Feb 26 16:06:39 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rB1e993d2b78256a387022236d892ffa8d5f44c38c

GPencil: Cleanup more loops with FOREACH macro

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

M	source/blender/editors/gpencil/editaction_gpencil.c
M	source/blender/editors/gpencil/gpencil_convert.c
M	source/blender/editors/gpencil/gpencil_edit.c
M	source/blender/editors/gpencil/gpencil_merge.c

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

diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c
index 83165fd4930..86355787b3c 100644
--- a/source/blender/editors/gpencil/editaction_gpencil.c
+++ b/source/blender/editors/gpencil/editaction_gpencil.c
@@ -240,7 +240,6 @@ void ED_gplayer_frames_select_region(KeyframeEditData *ked,
 /* Delete selected frames */
 bool ED_gplayer_frames_delete(bGPDlayer *gpl)
 {
-  bGPDframe *gpf, *gpfn;
   bool changed = false;
 
   /* error checking */
@@ -249,9 +248,7 @@ bool ED_gplayer_frames_delete(bGPDlayer *gpl)
   }
 
   /* check for frames to delete */
-  for (gpf = gpl->frames.first; gpf; gpf = gpfn) {
-    gpfn = gpf->next;
-
+  LISTBASE_FOREACH_MUTABLE (bGPDframe *, gpf, &gpl->frames) {
     if (gpf->flag & GP_FRAME_SELECT) {
       BKE_gpencil_layer_frame_delete(gpl, gpf);
       changed = true;
@@ -264,16 +261,13 @@ bool ED_gplayer_frames_delete(bGPDlayer *gpl)
 /* Duplicate selected frames from given gp-layer */
 void ED_gplayer_frames_duplicate(bGPDlayer *gpl)
 {
-  bGPDframe *gpf, *gpfn;
-
   /* error checking */
   if (gpl == NULL) {
     return;
   }
 
   /* duplicate selected frames  */
-  for (gpf = gpl->frames.first; gpf; gpf = gpfn) {
-    gpfn = gpf->next;
+  LISTBASE_FOREACH_MUTABLE (bGPDframe *, gpf, &gpl->frames) {
 
     /* duplicate this frame */
     if (gpf->flag & GP_FRAME_SELECT) {
diff --git a/source/blender/editors/gpencil/gpencil_convert.c b/source/blender/editors/gpencil/gpencil_convert.c
index f9341e7fc38..b5051be612a 100644
--- a/source/blender/editors/gpencil/gpencil_convert.c
+++ b/source/blender/editors/gpencil/gpencil_convert.c
@@ -1795,10 +1795,8 @@ static int image_to_gpencil_exec(bContext *C, wmOperator *op)
 
   if (done) {
     /* Delete any selected point. */
-    bGPDstroke *gps, *gpsn;
-    for (gps = gpf->strokes.first; gps; gps = gpsn) {
-      gpsn = gps->next;
-      gp_stroke_delete_tagged_points(gpf, gps, gpsn, GP_SPOINT_SELECT, false, 0);
+    LISTBASE_FOREACH_MUTABLE (bGPDstroke *, gps, &gpf->strokes) {
+      gp_stroke_delete_tagged_points(gpf, gps, gps->next, GP_SPOINT_SELECT, false, 0);
     }
 
     BKE_reportf(op->reports, RPT_INFO, "Object created");
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 34be25cc0ee..9451c34bf05 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -2440,15 +2440,13 @@ static int gp_delete_selected_points(bContext *C)
 
     for (bGPDframe *gpf = init_gpf; gpf; gpf = gpf->next) {
       if ((gpf == gpl->actframe) || ((gpf->flag & GP_FRAME_SELECT) && (is_multiedit))) {
-        bGPDstroke *gps, *gpsn;
 
         if (gpf == NULL) {
           continue;
         }
 
         /* simply delete strokes which are selected */
-        for (gps = gpf->strokes.first; gps; gps = gpsn) {
-          gpsn = gps->next;
+        LISTBASE_FOREACH_MUTABLE (bGPDstroke *, gps, &gpf->strokes) {
 
           /* skip strokes that are invalid for current view */
           if (ED_gpencil_stroke_can_use(C, gps) == false) {
@@ -2464,7 +2462,7 @@ static int gp_delete_selected_points(bContext *C)
             gps->flag &= ~GP_STROKE_SELECT;
 
             /* delete unwanted points by splitting stroke into several smaller ones */
-            gp_stroke_delete_tagged_points(gpf, gps, gpsn, GP_SPOINT_SELECT, false, 0);
+            gp_stroke_delete_tagged_points(gpf, gps, gps->next, GP_SPOINT_SELECT, false, 0);
 
             changed = true;
           }
@@ -4227,7 +4225,6 @@ static int gp_stroke_separate_exec(bContext *C, wmOperator *op)
 
       for (bGPDframe *gpf = init_gpf; gpf; gpf = gpf->next) {
         if ((gpf == gpl->actframe) || ((gpf->flag & GP_FRAME_SELECT) && (is_multiedit))) {
-          bGPDstroke *gps, *gpsn;
 
           if (gpf == NULL) {
             continue;
@@ -4235,8 +4232,7 @@ static int gp_stroke_separate_exec(bContext *C, wmOperator *op)
 
           gpf_dst = NULL;
 
-          for (gps = gpf->strokes.first; gps; gps = gpsn) {
-            gpsn = gps->next;
+          LISTBASE_FOREACH_MUTABLE (bGPDstroke *, gps, &gpf->strokes) {
 
             /* skip strokes that are invalid for current view */
             if (ED_gpencil_stroke_can_use(C, gps) == false) {
@@ -4285,7 +4281,7 @@ static int gp_stroke_separate_exec(bContext *C, wmOperator *op)
                 gp_stroke_delete_tagged_points(gpf_dst, gps_dst, NULL, GP_SPOINT_SELECT, false, 0);
 
                 /* delete selected points from origin stroke */
-                gp_stroke_delete_tagged_points(gpf, gps, gpsn, GP_SPOINT_SELECT, false, 0);
+                gp_stroke_delete_tagged_points(gpf, gps, gps->next, GP_SPOINT_SELECT, false, 0);
               }
               /* selected strokes mode */
               else if (mode == GP_SEPARATE_STROKE) {
@@ -4404,14 +4400,12 @@ static int gp_stroke_split_exec(bContext *C, wmOperator *UNUSED(op))
 
     for (bGPDframe *gpf = init_gpf; gpf; gpf = gpf->next) {
       if ((gpf == gpl->actframe) || ((gpf->flag & GP_FRAME_SELECT) && (is_multiedit))) {
-        bGPDstroke *gps, *gpsn;
 
         if (gpf == NULL) {
           continue;
         }
 
-        for (gps = gpf->strokes.first; gps; gps = gpsn) {
-          gpsn = gps->next;
+        LISTBASE_FOREACH_MUTABLE (bGPDstroke *, gps, &gpf->strokes) {
 
           /* skip strokes that are invalid for current view */
           if (ED_gpencil_stroke_can_use(C, gps) == false) {
@@ -4438,11 +4432,11 @@ static int gp_stroke_split_exec(bContext *C, wmOperator *UNUSED(op))
             gp_stroke_delete_tagged_points(gpf, gps_dst, NULL, GP_SPOINT_SELECT, true, 0);
 
             /* delete selected points from origin stroke */
-            gp_stroke_delete_tagged_points(gpf, gps, gpsn, GP_SPOINT_SELECT, false, 0);
+            gp_stroke_delete_tagged_points(gpf, gps, gps->next, GP_SPOINT_SELECT, false, 0);
           }
         }
         /* select again tagged points */
-        for (gps = gpf->strokes.first; gps; gps = gps->next) {
+        LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) {
           bGPDspoint *ptn = gps->points;
           for (int i2 = 0; i2 < gps->totpoints; i2++, ptn++) {
             if (ptn->flag & GP_SPOINT_TAG) {
@@ -4682,7 +4676,6 @@ static int gpencil_cutter_lasso_select(bContext *C,
   GP_EDITABLE_STROKES_END(gpstroke_iter);
 
   /* dissolve selected points */
-  bGPDstroke *gpsn;
   LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
     if (gpl->flag & GP_LAYER_LOCKED) {
       continue;
@@ -4692,8 +4685,7 @@ static int gpencil_cutter_lasso_select(bContext *C,
     if (gpf == NULL) {
       continue;
     }
-    for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gpsn) {
-      gpsn = gps->next;
+    LISTBASE_FOREACH_MUTABLE (bGPDstroke *, gps, &gpf->strokes) {
       if (gps->flag & GP_STROKE_SELECT) {
         gpencil_cutter_dissolve(gpl, gps);
       }
diff --git a/source/blender/editors/gpencil/gpencil_merge.c b/source/blender/editors/gpencil/gpencil_merge.c
index e173a799b1b..4a8b207f54d 100644
--- a/source/blender/editors/gpencil/gpencil_merge.c
+++ b/source/blender/editors/gpencil/gpencil_merge.c
@@ -180,17 +180,14 @@ static void gpencil_get_elements_len(bContext *C, int *totstrokes, int *totpoint
 
 static void gpencil_dissolve_points(bContext *C)
 {
-  bGPDstroke *gps, *gpsn;
-
   CTX_DATA_BEGIN (C, bGPDlayer *, gpl, editable_gpencil_layers) {
     bGPDframe *gpf = gpl->actframe;
     if (gpf == NULL) {
       continue;
     }
 
-    for (gps = gpf->strokes.first; gps; gps = gpsn) {
-      gpsn = gps->next;
-      gp_stroke_delete_tagged_points(gpf, gps, gpsn, GP_SPOINT_TAG, false, 0);
+    LISTBASE_FOREACH_MUTABLE (bGPDstroke *, gps, &gpf->strokes) {
+      gp_stroke_delete_tagged_points(gpf, gps, gps->next, GP_SPOINT_TAG, false, 0);
     }
   }
   CTX_DATA_END;



More information about the Bf-blender-cvs mailing list