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;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to