[Bf-blender-cvs] [705c2e81db8] soc-2020-greasepencil-curve: GPencil: Fix duplicate code

Falk David noreply at git.blender.org
Wed Jun 3 17:22:57 CEST 2020


Commit: 705c2e81db88ce26d8edb60638a402529a8c0f54
Author: Falk David
Date:   Wed Jun 3 17:19:10 2020 +0200
Branches: soc-2020-greasepencil-curve
https://developer.blender.org/rB705c2e81db88ce26d8edb60638a402529a8c0f54

GPencil: Fix duplicate code

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

M	source/blender/blenkernel/BKE_gpencil.h
M	source/blender/blenkernel/intern/gpencil.c

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

diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index 6a33e52a687..688739ea6aa 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -89,7 +89,7 @@ struct bGPdata;
 
 void BKE_gpencil_free_point_weights(struct MDeformVert *dvert);
 void BKE_gpencil_free_stroke_weights(struct bGPDstroke *gps);
-void BKE_gpencil_free_editcurve(struct bGPDcurve *editcurve);
+void BKE_gpencil_free_stroke_editcurve(struct bGPDstroke *gps);
 void BKE_gpencil_free_stroke(struct bGPDstroke *gps);
 bool BKE_gpencil_free_strokes(struct bGPDframe *gpf);
 void BKE_gpencil_free_frames(struct bGPDlayer *gpl);
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index 05fa92b840f..19c4eac01bf 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -177,8 +177,12 @@ void BKE_gpencil_free_stroke_weights(bGPDstroke *gps)
   }
 }
 
-void BKE_gpencil_free_editcurve(bGPDcurve *editcurve)
+void BKE_gpencil_free_stroke_editcurve(bGPDstroke *gps)
 {
+  if (gps == NULL) {
+    return;
+  }
+  bGPDcurve *editcurve = gps->editcurve;
   if (editcurve == NULL) {
     return;
   }
@@ -204,8 +208,8 @@ void BKE_gpencil_free_stroke(bGPDstroke *gps)
   if (gps->triangles) {
     MEM_freeN(gps->triangles);
   }
-  if (gps->editcurve) {
-    BKE_gpencil_free_editcurve(gps->editcurve);
+  if (gps->editcurve != NULL) {
+    BKE_gpencil_free_stroke_editcurve(gps);
   }
 
   MEM_freeN(gps);
@@ -582,6 +586,8 @@ bGPDstroke *BKE_gpencil_stroke_new(int mat_idx, int totpoints, short thickness)
 
   gps->mat_nr = mat_idx;
 
+  gps->editcurve = NULL;
+
   return gps;
 }
 
@@ -661,14 +667,15 @@ bGPDstroke *BKE_gpencil_stroke_duplicate(bGPDstroke *gps_src, const bool dup_poi
       gps_dst->dvert = MEM_dupallocN(gps_src->dvert);
       BKE_gpencil_stroke_weights_duplicate(gps_src, gps_dst);
     }
-    if (gps_src->editcurve != NULL) {
-      gps_dst->editcurve = BKE_gpencil_stroke_curve_duplicate(gps_src->editcurve);
-    }
     else {
       gps_dst->dvert = NULL;
     }
   }
 
+  if (gps_src->editcurve != NULL) {
+    gps_dst->editcurve = BKE_gpencil_stroke_curve_duplicate(gps_src->editcurve);
+  }
+
   /* return new stroke */
   return gps_dst;
 }



More information about the Bf-blender-cvs mailing list