[Bf-blender-cvs] [1c2a20c84d4] blender-v2.81-release: Fix T70714: Crash when using OBJECT_OT_material_slot_assign op without UI.

Bastien Montagne noreply at git.blender.org
Fri Oct 11 18:55:02 CEST 2019


Commit: 1c2a20c84d46d30bc429da87daf84d75162f9c9b
Author: Bastien Montagne
Date:   Fri Oct 11 17:13:11 2019 +0200
Branches: blender-v2.81-release
https://developer.blender.org/rB1c2a20c84d46d30bc429da87daf84d75162f9c9b

Fix T70714: Crash when using OBJECT_OT_material_slot_assign op without UI.

There is no guarantee we can get any valid UI from the context, and that
operator can work without it.

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

M	source/blender/editors/render/render_shading.c

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

diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 9f13431f25a..7970d491877 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -103,15 +103,17 @@ static Object **object_array_for_shading(bContext *C, uint *r_objects_len)
   ScrArea *sa = CTX_wm_area(C);
   SpaceProperties *sbuts = NULL;
   View3D *v3d = NULL;
-  if (sa->spacetype == SPACE_PROPERTIES) {
-    sbuts = sa->spacedata.first;
-  }
-  else if (sa->spacetype == SPACE_VIEW3D) {
-    v3d = sa->spacedata.first;
+  if (sa != NULL) {
+    if (sa->spacetype == SPACE_PROPERTIES) {
+      sbuts = sa->spacedata.first;
+    }
+    else if (sa->spacetype == SPACE_VIEW3D) {
+      v3d = sa->spacedata.first;
+    }
   }
 
   Object **objects;
-  if (sbuts && sbuts->pinid && GS(sbuts->pinid->name) == ID_OB) {
+  if (sbuts != NULL && sbuts->pinid && GS(sbuts->pinid->name) == ID_OB) {
     objects = MEM_mallocN(sizeof(*objects), __func__);
     objects[0] = (Object *)sbuts->pinid;
     *r_objects_len = 1;



More information about the Bf-blender-cvs mailing list