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:
authorBastien Montagne <bastien@blender.org>2022-08-29 18:23:42 +0300
committerBastien Montagne <bastien@blender.org>2022-08-29 18:25:09 +0300
commit999c5c5c8d44943f1df3cbcf227e59422d990acf (patch)
tree10e64552274056593977acde7041b56bbebc1557 /source/blender/windowmanager
parent1567dca657ed13e7dffcbd781bccfe7573111208 (diff)
Fix (studio-reported) crash when linking/appending data in some cases.
Recent refactor (rB7be1c8bbae76f49f) removed a null check in WM code, that is mandatory in some cases like e.g. liboverride apply code on linked data.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.cc b/source/blender/windowmanager/intern/wm_event_system.cc
index d136d3831c9..2bba0ac802d 100644
--- a/source/blender/windowmanager/intern/wm_event_system.cc
+++ b/source/blender/windowmanager/intern/wm_event_system.cc
@@ -280,6 +280,16 @@ static bool note_cmp_for_queue_fn(const void *a, const void *b)
void WM_event_add_notifier_ex(wmWindowManager *wm, const wmWindow *win, uint type, void *reference)
{
+ if (wm == nullptr) {
+ /* There may be some cases where e.g. `G_MAIN` is not actually the real current main, but some
+ * other temporary one (e.g. during liboverride processing over linked data), leading to null
+ * window manager.
+ *
+ * This is fairly bad and weak, but unfortunately RNA does not have any way to operate over
+ * another main than G_MAIN currently. */
+ return;
+ }
+
wmNotifier note_test = {nullptr};
note_test.window = win;