[Bf-blender-cvs] [29fb12da589] master: Fix T83510: Convert Gpencil to curve crash when stroke has zero points
Antonio Vazquez
noreply at git.blender.org
Mon Dec 7 19:08:42 CET 2020
Commit: 29fb12da589eeb3bbc31b81874526208b35334cb
Author: Antonio Vazquez
Date: Mon Dec 7 19:08:29 2020 +0100
Branches: master
https://developer.blender.org/rB29fb12da589eeb3bbc31b81874526208b35334cb
Fix T83510: Convert Gpencil to curve crash when stroke has zero points
If the stroke had zero points the pointer returned NULL.
Also replaced for loop by FOREACH macro.
This is a corner case of "empty" strokes without points.
===================================================================
M source/blender/editors/gpencil/gpencil_convert.c
===================================================================
diff --git a/source/blender/editors/gpencil/gpencil_convert.c b/source/blender/editors/gpencil/gpencil_convert.c
index 33b02d525d5..63aa242275a 100644
--- a/source/blender/editors/gpencil/gpencil_convert.c
+++ b/source/blender/editors/gpencil/gpencil_convert.c
@@ -1312,7 +1312,7 @@ static void gpencil_layer_to_curve(bContext *C,
Scene *scene = CTX_data_scene(C);
bGPDframe *gpf = BKE_gpencil_layer_frame_get(gpl, CFRA, GP_GETFRAME_USE_PREV);
- bGPDstroke *gps, *prev_gps = NULL;
+ bGPDstroke *prev_gps = NULL;
Object *ob;
Curve *cu;
Nurb *nu = NULL;
@@ -1353,7 +1353,10 @@ static void gpencil_layer_to_curve(bContext *C,
gtd->inittime = ((bGPDstroke *)gpf->strokes.first)->inittime;
/* add points to curve */
- for (gps = gpf->strokes.first; gps; gps = gps->next) {
+ LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) {
+ if (gps->totpoints < 1) {
+ continue;
+ }
const bool add_start_point = (link_strokes && !(prev_gps));
const bool add_end_point = (link_strokes && !(gps->next));
More information about the Bf-blender-cvs
mailing list