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:
authorAras Pranckevicius <aras@nesnausk.org>2022-08-26 11:48:48 +0300
committerBastien Montagne <bastien@blender.org>2022-08-26 13:15:12 +0300
commita1c8a17b4d95794ce36ee7db86f98ab818be0ed6 (patch)
treec9ab864099399105a5b1b29f9ceb9e780fe6bf9e
parent60420f6ea4c470966fdd7cebd5bdf2d9fb484c06 (diff)
IDManagement: fix missing WM name validation when using "keep current WM list" code path
The blendfile_liblink and blendfile_io python tests in debug fired an assert that WMWinMan object was in Main database, but not in the ID name map. This was caused by wm_window_match_do going into case 3 there: the new WM list is completely empty, the old list is not empty, and it was directly using the old/current list (via wm_window_match_keep_current_wm function), without actually registering/validating the objects in it through the name map. Reviewed By: Bastien Montagne Differential Revision: https://developer.blender.org/D15787
-rw-r--r--source/blender/windowmanager/intern/wm_files.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 45e8f8786df..25782cb4fe7 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -296,6 +296,12 @@ static void wm_window_match_keep_current_wm(const bContext *C,
}
}
+ /* we'll be using the current wm list directly; make sure
+ * the names are validated and in the name map. */
+ LISTBASE_FOREACH (wmWindowManager *, wm_item, current_wm_list) {
+ BKE_main_namemap_get_name(bmain, &wm_item->id, wm_item->id.name + 2);
+ }
+
*r_new_wm_list = *current_wm_list;
}