[Bf-blender-cvs] [3f9a6f9] id-remap: Unlock around core of linking code in reload/relocate context too, for now.

Bastien Montagne noreply at git.blender.org
Mon Sep 21 21:58:45 CEST 2015


Commit: 3f9a6f9feac9e95efd80b2e96991d7bc47256a0b
Author: Bastien Montagne
Date:   Mon Sep 21 20:40:46 2015 +0200
Branches: id-remap
https://developer.blender.org/rB3f9a6f9feac9e95efd80b2e96991d7bc47256a0b

Unlock around core of linking code in reload/relocate context too, for now.

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

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 4694e67..3eef6e5 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -3083,9 +3083,14 @@ static int wm_lib_relocate_exec_do(bContext *C, wmOperator *op, const bool reloa
 
 			BKE_main_id_flag_all(bmain, LIB_PRE_EXISTING, true);
 
+			/* XXX For now, locking is not reentrant so it's not safe to call core linking code with locked Main. */
+			BKE_main_unlock(bmain);
+
 			/* We do not want any instanciation here! */
 			wm_link_do(lapp_data, op->reports, bmain, NULL, NULL);
 
+			BKE_main_lock(bmain);
+
 			/* We add back old id to bmain.
 			 * We need to do this in a first, separated loop, otherwise some of those may not be handled by
 			 * ID remapping, which means they would still reference old data to be deleted... */




More information about the Bf-blender-cvs mailing list