[Bf-blender-cvs] [a97ae83a09e] blender-v3.3-release: Fix T100703: Crash in file reading with ID's referenced from the WM
Campbell Barton
noreply at git.blender.org
Tue Aug 30 11:45:16 CEST 2022
Commit: a97ae83a09e0a67168f1d3cdcbafd5b1ff16e3c9
Author: Campbell Barton
Date: Tue Aug 30 19:24:45 2022 +1000
Branches: blender-v3.3-release
https://developer.blender.org/rBa97ae83a09e0a67168f1d3cdcbafd5b1ff16e3c9
Fix T100703: Crash in file reading with ID's referenced from the WM
Don't decrement ID reference counts as any ID references from the
window-managers will have already been freed.
Reviewed By: mont29
Ref D15808
===================================================================
M source/blender/windowmanager/intern/wm.c
===================================================================
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c
index 0d74bc259f4..2500d72c850 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -610,7 +610,10 @@ void wm_close_and_free_all(bContext *C, ListBase *wmlist)
while ((wm = wmlist->first)) {
wm_close_and_free(C, wm);
BLI_remlink(wmlist, wm);
- BKE_libblock_free_data(&wm->id, true);
+ /* Don't handle user counts as this is only ever called once #G_MAIN has already been freed via
+ * #BKE_main_free so any ID's referenced by the window-manager (from ID properties) will crash.
+ * See: T100703. */
+ BKE_libblock_free_data(&wm->id, false);
BKE_libblock_free_data_py(&wm->id);
MEM_freeN(wm);
}
More information about the Bf-blender-cvs
mailing list