[Bf-blender-cvs] [8cb10c124ef] blender-v2.83-release: Fix T75675: Unlinking [with setting users to zero] not clearing LIB_TAG_EXTRAUSER_SET flag

Philipp Oeser noreply at git.blender.org
Thu Apr 16 17:44:40 CEST 2020


Commit: 8cb10c124efebc27a7451f3d3a4c62d23c3927b5
Author: Philipp Oeser
Date:   Thu Apr 16 17:09:04 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB8cb10c124efebc27a7451f3d3a4c62d23c3927b5

Fix T75675: Unlinking [with setting users to zero] not clearing
LIB_TAG_EXTRAUSER_SET flag

For example in the Image Editor, an assert would be triggered after
unlinking an image [with setting users to zero] and then setting the
image for the Image Editor again.

Whenever we set an Image for Image Editor, the Image ID is flagged
LIB_TAG_EXTRAUSER_SET, when we unlink [with setting users to zero] this
flag was not cleared.

quote @mont29: "a proper fix would be to move this to modern code, and
actually delete the ID..." but that is for later.

Maniphest Tasks: T75675

Differential Revision: https://developer.blender.org/D7452

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

M	source/blender/editors/interface/interface_templates.c

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

diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 6f6a4a1718a..52afb17079d 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -536,6 +536,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
 
       if (id && CTX_wm_window(C)->eventstate->shift) {
         /* only way to force-remove data (on save) */
+        id_us_clear_real(id);
         id_fake_user_clear(id);
         id->us = 0;
       }



More information about the Bf-blender-cvs mailing list