Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-03-26 07:10:27 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-03-26 07:32:40 +0300
commita9394aa48e36daf08402a5781258977f66414ba0 (patch)
treee93c7917f622de16ebe54de3872c8000a584c40c /source/blender/makesrna
parent38b211b58198f48b37473671d92d448bc48c4c67 (diff)
Fix crashes accessing inactive screen properties
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/intern/rna_space.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 9826d921dce..cf515792252 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -859,7 +859,12 @@ static void rna_SpaceView3D_use_local_camera_set(PointerRNA *ptr, bool value)
if (!value) {
Scene *scene = ED_screen_scene_find(sc, G_MAIN->wm.first);
- v3d->camera = scene->camera;
+ /* NULL if the screen isn't in an active window (happens when setting from Python).
+ * This could be moved to the update function, in that case the scene wont relate to the screen
+ * so keep it working this way. */
+ if (scene != NULL) {
+ v3d->camera = scene->camera;
+ }
}
}
@@ -868,8 +873,13 @@ static float rna_View3DOverlay_GridScaleUnit_get(PointerRNA *ptr)
View3D *v3d = (View3D *)(ptr->data);
bScreen *screen = (bScreen *)ptr->owner_id;
Scene *scene = ED_screen_scene_find(screen, G_MAIN->wm.first);
-
- return ED_view3d_grid_scale(scene, v3d, NULL);
+ if (scene != NULL) {
+ return ED_view3d_grid_scale(scene, v3d, NULL);
+ }
+ else {
+ /* When accessed from non-active screen. */
+ return 1.0f;
+ }
}
static PointerRNA rna_SpaceView3D_region_3d_get(PointerRNA *ptr)