Commit: e5194835de457d69def325767c912035bc994f5c
Author: Brecht Van Lommel
Date:   Fri Mar 1 00:34:25 2019 +0100
Branches: master
https://developer.blender.org/rBe5194835de457d69def325767c912035bc994f5c

Fix T61929: crash on undo in some files with local view.

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

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

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

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index 7145e67a4f2..fec4f3486d5 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -7823,7 +7823,9 @@ static void lib_link_window_scene_data_restore(wmWindow 
*win, Scene *scene, View
                                                v3d->localvd = NULL;
                                                v3d->local_view_uuid = 0;
 
-                                               for (ARegion *ar = 
area->regionbase.first; ar; ar = ar->next) {
+                                               /* Regionbase storage is 
different depending if the space is active. */
+                                               ListBase *regionbase = (sl == 
area->spacedata.first) ? &area->regionbase : &sl->regionbase;
+                                               for (ARegion *ar = 
regionbase->first; ar; ar = ar->next) {
                                                        if (ar->regiontype == 
RGN_TYPE_WINDOW) {
                                                                RegionView3D 
*rv3d = ar->regiondata;
                                                                if 
(rv3d->localvd) {
@@ -7854,8 +7856,9 @@ static void lib_link_workspace_layout_restore(struct 
IDNameLib_Map *id_map, Main
                                        v3d->camera = 
restore_pointer_by_name(id_map, (ID *)v3d->camera, USER_REAL);
                                        v3d->ob_centre = 
restore_pointer_by_name(id_map, (ID *)v3d->ob_centre, USER_REAL);
 
-                                       /* free render engines for now */
-                                       for (ar = sa->regionbase.first; ar; ar 
= ar->next) {
+                                       /* Free render engines for now. */
+                                       ListBase *regionbase = (sl == 
sa->spacedata.first) ? &sa->regionbase : &sl->regionbase;
+                                       for (ar = regionbase->first; ar; ar = 
ar->next) {
                                                if (ar->regiontype == 
RGN_TYPE_WINDOW) {
                                                        RegionView3D *rv3d = 
ar->regiondata;
                                                        if (rv3d && 
rv3d->render_engine) {

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

Reply via email to