[Bf-blender-cvs] [f94e322ab7f] blender-v2.90-release: Fix T79770: Crash opening 2.83 .blend with linked collection containing greasepencil object in 2.91

Antonio Vazquez noreply at git.blender.org
Tue Aug 18 08:38:47 CEST 2020


Commit: f94e322ab7f480342b12d7c65406216ca4eed067
Author: Antonio Vazquez
Date:   Tue Aug 18 08:36:26 2020 +0200
Branches: blender-v2.90-release
https://developer.blender.org/rBf94e322ab7f480342b12d7c65406216ca4eed067

Fix T79770: Crash opening 2.83 .blend with linked collection containing greasepencil object in 2.91

The scene was null and could not be patched.

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

M	source/blender/blenloader/intern/versioning_290.c

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

diff --git a/source/blender/blenloader/intern/versioning_290.c b/source/blender/blenloader/intern/versioning_290.c
index a96b82e2e91..aef2a59580c 100644
--- a/source/blender/blenloader/intern/versioning_290.c
+++ b/source/blender/blenloader/intern/versioning_290.c
@@ -188,17 +188,19 @@ void do_versions_after_linking_290(Main *bmain, ReportList *UNUSED(reports))
 
     /* Patch first frame for old files. */
     Scene *scene = bmain->scenes.first;
-    LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
-      if (ob->type != OB_GPENCIL) {
-        continue;
-      }
-      bGPdata *gpd = ob->data;
-      LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
-        bGPDframe *gpf = gpl->frames.first;
-        if (gpf && gpf->framenum > scene->r.sfra) {
-          bGPDframe *gpf_dup = BKE_gpencil_frame_duplicate(gpf);
-          gpf_dup->framenum = scene->r.sfra;
-          BLI_addhead(&gpl->frames, gpf_dup);
+    if (scene != NULL) {
+      LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
+        if (ob->type != OB_GPENCIL) {
+          continue;
+        }
+        bGPdata *gpd = ob->data;
+        LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
+          bGPDframe *gpf = gpl->frames.first;
+          if (gpf && gpf->framenum > scene->r.sfra) {
+            bGPDframe *gpf_dup = BKE_gpencil_frame_duplicate(gpf);
+            gpf_dup->framenum = scene->r.sfra;
+            BLI_addhead(&gpl->frames, gpf_dup);
+          }
         }
       }
     }



More information about the Bf-blender-cvs mailing list