[Bf-blender-cvs] [d649b4b066f] master: Fix crash using menu search without an active area

Campbell Barton noreply at git.blender.org
Fri Oct 15 08:52:24 CEST 2021


Commit: d649b4b066f48bde3b8eee30c5a401164849e430
Author: Campbell Barton
Date:   Fri Oct 15 17:48:51 2021 +1100
Branches: master
https://developer.blender.org/rBd649b4b066f48bde3b8eee30c5a401164849e430

Fix crash using menu search without an active area

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

M	source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index dff8e72a5fe..0e58e1c0466 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -543,50 +543,52 @@ static const char *wm_context_member_from_ptr(const bContext *C,
       case ID_SCR: {
         CTX_TEST_PTR_ID(C, "screen", ptr->owner_id);
 
-        SpaceLink *space_data = CTX_wm_space_data(C);
-
-        TEST_PTR_DATA_TYPE("space_data", RNA_Space, ptr, space_data);
         TEST_PTR_DATA_TYPE("area", RNA_Area, ptr, CTX_wm_area(C));
         TEST_PTR_DATA_TYPE("region", RNA_Region, ptr, CTX_wm_region(C));
 
-        switch (space_data->spacetype) {
-          case SPACE_VIEW3D: {
-            const View3D *v3d = (View3D *)space_data;
-            const View3DShading *shading = &v3d->shading;
+        SpaceLink *space_data = CTX_wm_space_data(C);
+        if (space_data != NULL) {
+          TEST_PTR_DATA_TYPE("space_data", RNA_Space, ptr, space_data);
 
-            TEST_PTR_DATA_TYPE("space_data.overlay", RNA_View3DOverlay, ptr, v3d);
-            TEST_PTR_DATA_TYPE("space_data.shading", RNA_View3DShading, ptr, shading);
-            break;
-          }
-          case SPACE_GRAPH: {
-            const SpaceGraph *sipo = (SpaceGraph *)space_data;
-            const bDopeSheet *ads = sipo->ads;
-            TEST_PTR_DATA_TYPE("space_data.dopesheet", RNA_DopeSheet, ptr, ads);
-            break;
-          }
-          case SPACE_FILE: {
-            const SpaceFile *sfile = (SpaceFile *)space_data;
-            const FileSelectParams *params = ED_fileselect_get_active_params(sfile);
-            TEST_PTR_DATA_TYPE("space_data.params", RNA_FileSelectParams, ptr, params);
-            break;
-          }
-          case SPACE_IMAGE: {
-            const SpaceImage *sima = (SpaceImage *)space_data;
-            TEST_PTR_DATA_TYPE("space_data.overlay", RNA_SpaceImageOverlay, ptr, sima);
-            TEST_PTR_DATA_TYPE("space_data.uv_editor", RNA_SpaceUVEditor, ptr, sima);
-            break;
-          }
-          case SPACE_NLA: {
-            const SpaceNla *snla = (SpaceNla *)space_data;
-            const bDopeSheet *ads = snla->ads;
-            TEST_PTR_DATA_TYPE("space_data.dopesheet", RNA_DopeSheet, ptr, ads);
-            break;
-          }
-          case SPACE_ACTION: {
-            const SpaceAction *sact = (SpaceAction *)space_data;
-            const bDopeSheet *ads = &sact->ads;
-            TEST_PTR_DATA_TYPE("space_data.dopesheet", RNA_DopeSheet, ptr, ads);
-            break;
+          switch (space_data->spacetype) {
+            case SPACE_VIEW3D: {
+              const View3D *v3d = (View3D *)space_data;
+              const View3DShading *shading = &v3d->shading;
+
+              TEST_PTR_DATA_TYPE("space_data.overlay", RNA_View3DOverlay, ptr, v3d);
+              TEST_PTR_DATA_TYPE("space_data.shading", RNA_View3DShading, ptr, shading);
+              break;
+            }
+            case SPACE_GRAPH: {
+              const SpaceGraph *sipo = (SpaceGraph *)space_data;
+              const bDopeSheet *ads = sipo->ads;
+              TEST_PTR_DATA_TYPE("space_data.dopesheet", RNA_DopeSheet, ptr, ads);
+              break;
+            }
+            case SPACE_FILE: {
+              const SpaceFile *sfile = (SpaceFile *)space_data;
+              const FileSelectParams *params = ED_fileselect_get_active_params(sfile);
+              TEST_PTR_DATA_TYPE("space_data.params", RNA_FileSelectParams, ptr, params);
+              break;
+            }
+            case SPACE_IMAGE: {
+              const SpaceImage *sima = (SpaceImage *)space_data;
+              TEST_PTR_DATA_TYPE("space_data.overlay", RNA_SpaceImageOverlay, ptr, sima);
+              TEST_PTR_DATA_TYPE("space_data.uv_editor", RNA_SpaceUVEditor, ptr, sima);
+              break;
+            }
+            case SPACE_NLA: {
+              const SpaceNla *snla = (SpaceNla *)space_data;
+              const bDopeSheet *ads = snla->ads;
+              TEST_PTR_DATA_TYPE("space_data.dopesheet", RNA_DopeSheet, ptr, ads);
+              break;
+            }
+            case SPACE_ACTION: {
+              const SpaceAction *sact = (SpaceAction *)space_data;
+              const bDopeSheet *ads = &sact->ads;
+              TEST_PTR_DATA_TYPE("space_data.dopesheet", RNA_DopeSheet, ptr, ads);
+              break;
+            }
           }
         }



More information about the Bf-blender-cvs mailing list