Fix T54767: Crash in versionning code for recent editors' removal.
authorBastien Montagne <montagne29@wanadoo.fr>
Mon, 23 Apr 2018 10:27:09 +0000 (12:27 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Mon, 23 Apr 2018 10:31:03 +0000 (12:31 +0200)
Always check for non-Null pointers there! This versionning code is
called from many different places, with many different kind of Main's.

source/blender/blenloader/intern/versioning_280.c
source/tools

index 09e53bc9eb7cf903bf66532be006ca35d02421d2..bfcd6ca27f9081153fe13c8aaabc9bbf119c7650 100644 (file)
@@ -654,9 +654,9 @@ void do_versions_after_linking_280(Main *main)
        /* SpaceTime & SpaceLogic removal/replacing */
        if (!MAIN_VERSION_ATLEAST(main, 280, 9)) {
                const wmWindowManager *wm = main->wm.first;
-               if (wm != NULL) {
-                       const Scene *scene = main->scene.first;
+               const Scene *scene = main->scene.first;
 
+               if (wm != NULL) {
                        /* Action editors need a scene for creation. First, update active
                         * screens using the active scene of the window they're displayed in.
                         * Next, update remaining screens using first scene in main listbase. */
@@ -672,7 +672,8 @@ void do_versions_after_linking_280(Main *main)
                                        }
                                }
                        }
-
+               }
+               if (scene != NULL) {
                        for (bScreen *screen = main->screen.first; screen; screen = screen->id.next) {
                                for (ScrArea *area = screen->areabase.first; area; area = area->next) {
                                        if (ELEM(area->butspacetype, SPACE_TIME, SPACE_LOGIC)) {
index f35d8e55afffb9da50cc13b14615ed280f9e558c..56f3887596b538a9fc17e0439883f2e2305f2633 160000 (submodule)
@@ -1 +1 @@
-Subproject commit f35d8e55afffb9da50cc13b14615ed280f9e558c
+Subproject commit 56f3887596b538a9fc17e0439883f2e2305f2633