Commit: 91407293bf6c5eecb79fdcc8db2db20ba5a035a2
Author: Antonio Vazquez
Date:   Mon Aug 7 12:13:02 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB91407293bf6c5eecb79fdcc8db2db20ba5a035a2

Fix segment fault with Dupli modifier

This error was introduced after adding support for modifiers in edit mode

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

M       source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c 
b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
index 9b2aa0ed935..f590084f91c 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -631,8 +631,18 @@ static void gpencil_draw_strokes(GpencilBatchCache *cache, 
GPENCIL_e_data *e_dat
                }
        }
        int gps_idx = -1;
-       for (gps = derived_gpf->strokes.first, src_gps = 
src_gpf->strokes.first; gps; gps = gps->next, src_gps = src_gps->next) {
+
+       if (src_gpf) {
+               src_gps = src_gpf->strokes.first;
+       }
+       else {
+               src_gps = NULL;
+       }
+
+       for (gps = derived_gpf->strokes.first; gps; gps = gps->next) {
                ++gps_idx;
+
+
                /* check if stroke can be drawn */
                if (gpencil_can_draw_stroke(gps, onion) == false) {
                        continue;
@@ -682,10 +692,14 @@ static void gpencil_draw_strokes(GpencilBatchCache 
*cache, GPENCIL_e_data *e_dat
                gpencil_add_stroke_shgroup(cache, strokegrp, ob, gpd, gpl, 
derived_gpf, gps, opacity, tintcolor, onion, custonion);
 
                /* edit points (only in edit mode) */
-               if (!onion) {
+               if ((!onion) && (src_gps)){
                        gpencil_add_editpoints_shgroup(stl, cache, ts, ob, gpd, 
gpl, derived_gpf, src_gps);
                }
 
+               if (src_gps) {
+                       src_gps = src_gps->next;
+               }
+
                ++cache->cache_idx;
        }
 }

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

Reply via email to