[Bf-blender-cvs] [669c924e07c] blender-v3.3-release: Fix (unreported) bug in liboverride 'leaves' detection.

Bastien Montagne noreply at git.blender.org
Tue Aug 16 18:39:51 CEST 2022


Commit: 669c924e07c1a363c805d36aca799fa11c5a80a8
Author: Bastien Montagne
Date:   Tue Aug 16 18:37:51 2022 +0200
Branches: blender-v3.3-release
https://developer.blender.org/rB669c924e07c1a363c805d36aca799fa11c5a80a8

Fix (unreported) bug in liboverride 'leaves' detection.

Loopback ID pointers should be ignored here as well, otherwise they are
very efficient at preventing proper detection of 'leaf' override IDs in
a hierarchy.

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

M	source/blender/blenkernel/intern/lib_override.cc

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

diff --git a/source/blender/blenkernel/intern/lib_override.cc b/source/blender/blenkernel/intern/lib_override.cc
index 05a00fb54fd..58846aab4df 100644
--- a/source/blender/blenkernel/intern/lib_override.cc
+++ b/source/blender/blenkernel/intern/lib_override.cc
@@ -366,6 +366,10 @@ static int foreachid_is_hierarchy_leaf_fn(LibraryIDLinkCallbackData *cb_data)
   ID *id = *cb_data->id_pointer;
   bool *is_leaf = static_cast<bool *>(cb_data->user_data);
 
+  if (cb_data->cb_flag & IDWALK_CB_LOOPBACK) {
+    return IDWALK_RET_NOP;
+  }
+
   if (id != nullptr && ID_IS_OVERRIDE_LIBRARY_REAL(id) &&
       id->override_library->hierarchy_root == id_owner->override_library->hierarchy_root) {
     *is_leaf = false;



More information about the Bf-blender-cvs mailing list