[Bf-blender-cvs] [bc252b3b1a6] modifier-panels-ui: 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 21:30:31 CEST 2020


Commit: bc252b3b1a6e8590ac1de26c59132c27857a33f7
Author: Philipp Oeser
Date:   Thu Apr 16 17:09:04 2020 +0200
Branches: modifier-panels-ui
https://developer.blender.org/rBbc252b3b1a6e8590ac1de26c59132c27857a33f7

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 503dd0b580a..442e192e2a4 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