Commit: 84320976692e1e933b0159b6f3ab15eb6acde583
Author: Joshua Leung
Date:   Sun Nov 5 00:23:02 2017 +1300
Branches: greasepencil-object
https://developer.blender.org/rB84320976692e1e933b0159b6f3ab15eb6acde583

Fix crash on trying to save files with GP objects

Quick fix for context being NULL when the thumbnail renderer gets triggered
while trying to save files.

TODO: We need a better solution here for passing eval_ctx down to GP modifiers

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

M       source/blender/blenlib/intern/listbase.c
M       source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c

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

diff --git a/source/blender/blenlib/intern/listbase.c 
b/source/blender/blenlib/intern/listbase.c
index 0a6d575c7d6..4bfc5218d71 100644
--- a/source/blender/blenlib/intern/listbase.c
+++ b/source/blender/blenlib/intern/listbase.c
@@ -576,6 +576,9 @@ void *BLI_findstring(const ListBase *listbase, const char 
*id, const int offset)
        Link *link = NULL;
        const char *id_iter;
 
+       if (id == NULL)
+               return NULL;
+
        for (link = listbase->first; link; link = link->next) {
                id_iter = ((const char *)link) + offset;
 
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 19660781068..4493f830a71 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -672,8 +672,14 @@ static void gpencil_draw_strokes(GpencilBatchCache *cache, 
GPENCIL_e_data *e_dat
        /* Get evaluation context */
        const DRWContextState *draw_ctx = DRW_context_state_get();
        const bContext *C = draw_ctx->evil_C;
-       EvaluationContext eval_ctx;
-       CTX_data_eval_ctx(C, &eval_ctx);
+
+       EvaluationContext eval_ctx = {0};
+       if (C) {
+               /* NOTE: We must check if C is valid, otherwise we get crashes 
when trying to save files
+                * (i.e. the thumbnail offscreen rendering fails) 
+                */
+               CTX_data_eval_ctx(C, &eval_ctx);
+       }
 
        /* get parent matrix and save as static data */
        ED_gpencil_parent_location(ob, gpd, gpl, viewmatrix);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to