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-09-02 05:44:37 +0300
committerJeroen Bakker <jeroen@blender.org>2020-09-02 16:00:05 +0300
commit006ff645388628eb82c47acc3a595a6d80cd7d8d (patch)
tree9c89991cb177fb7e3708d07ac8bc54d349a83da4 /source/blender/makesrna
parentc4b9e2da8c3c12e69b9a7eab8d9f8a12e65dccaa (diff)
Fix crash accessing image space properties without an active window
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/intern/rna_space.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index d4d35e07c2a..b02bf375349 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -1455,11 +1455,14 @@ static bool rna_SpaceImageEditor_show_paint_get(PointerRNA *ptr)
static bool rna_SpaceImageEditor_show_uvedit_get(PointerRNA *ptr)
{
- SpaceImage *sima = (SpaceImage *)(ptr->data);
+ SpaceImage *sima = ptr->data;
bScreen *screen = (bScreen *)ptr->owner_id;
+ Object *obedit = NULL;
wmWindow *win = ED_screen_window_find(screen, G_MAIN->wm.first);
- ViewLayer *view_layer = WM_window_get_active_view_layer(win);
- Object *obedit = OBEDIT_FROM_VIEW_LAYER(view_layer);
+ if (win != NULL) {
+ ViewLayer *view_layer = WM_window_get_active_view_layer(win);
+ obedit = OBEDIT_FROM_VIEW_LAYER(view_layer);
+ }
return ED_space_image_show_uvedit(sima, obedit);
}
@@ -1467,22 +1470,28 @@ static bool rna_SpaceImageEditor_show_maskedit_get(PointerRNA *ptr)
{
SpaceImage *sima = (SpaceImage *)(ptr->data);
bScreen *screen = (bScreen *)ptr->owner_id;
+ Object *obedit = NULL;
wmWindow *win = ED_screen_window_find(screen, G_MAIN->wm.first);
- ViewLayer *view_layer = WM_window_get_active_view_layer(win);
- return ED_space_image_check_show_maskedit(sima, view_layer);
+ if (win != NULL) {
+ ViewLayer *view_layer = WM_window_get_active_view_layer(win);
+ obedit = OBEDIT_FROM_VIEW_LAYER(view_layer);
+ }
+ return ED_space_image_check_show_maskedit(sima, obedit);
}
static void rna_SpaceImageEditor_image_set(PointerRNA *ptr,
PointerRNA value,
struct ReportList *UNUSED(reports))
{
- SpaceImage *sima = (SpaceImage *)(ptr->data);
+ BLI_assert(BKE_id_is_in_global_main(value.data));
+ SpaceImage *sima = ptr->data;
bScreen *screen = (bScreen *)ptr->owner_id;
+ Object *obedit = NULL;
wmWindow *win = ED_screen_window_find(screen, G_MAIN->wm.first);
- ViewLayer *view_layer = WM_window_get_active_view_layer(win);
- Object *obedit = OBEDIT_FROM_VIEW_LAYER(view_layer);
-
- BLI_assert(BKE_id_is_in_global_main(value.data));
+ if (win != NULL) {
+ ViewLayer *view_layer = WM_window_get_active_view_layer(win);
+ obedit = OBEDIT_FROM_VIEW_LAYER(view_layer);
+ }
ED_space_image_set(G_MAIN, sima, obedit, (Image *)value.data, false);
}