Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2021-06-01 18:36:33 +0300
committerBastien Montagne <bastien@blender.org>2021-06-01 18:37:22 +0300
commit404b946ac0e4f86e99471c2805570dfe3a8cc67e (patch)
treefa7f2e23585114b2110aa8a0dae6075bc5eb6d92 /source/blender/blenkernel/intern/lib_override.c
parent6583fb67c6e1e5d714d723a09312e9dd25e02152 (diff)
LibOverride: Fix again infinite loop in resync in some complex/degenerated cases.
Broken in recent refactor of (recursive)resync, reported by studio, thanks.
Diffstat (limited to 'source/blender/blenkernel/intern/lib_override.c')
-rw-r--r--source/blender/blenkernel/intern/lib_override.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/lib_override.c b/source/blender/blenkernel/intern/lib_override.c
index 4d5085d6ad5..9a2887a1d16 100644
--- a/source/blender/blenkernel/intern/lib_override.c
+++ b/source/blender/blenkernel/intern/lib_override.c
@@ -1473,16 +1473,16 @@ static void lib_override_library_main_resync_on_library_indirect_level(
}
int level = 0;
- id = lib_override_library_main_resync_find_root_recurse(id, &level);
- BLI_assert(ID_IS_OVERRIDE_LIBRARY_REAL(id));
- do_continue = true;
-
/* In complex non-supported cases, with several different override hierarchies sharing
* relations between each-other, we may end up not actually updating/replacing the given
* root id (see e.g. pro/shots/110_rextoria/110_0150_A/110_0150_A.anim.blend of sprites
* project repository, r2687).
* This can lead to infinite loop here, at least avoid this. */
id->tag &= ~LIB_TAG_LIB_OVERRIDE_NEED_RESYNC;
+ id = lib_override_library_main_resync_find_root_recurse(id, &level);
+ id->tag &= ~LIB_TAG_LIB_OVERRIDE_NEED_RESYNC;
+ BLI_assert(ID_IS_OVERRIDE_LIBRARY_REAL(id));
+ do_continue = true;
CLOG_INFO(&LOG, 2, "Resyncing %s (%p)...", id->name, id->lib);
const bool success = BKE_lib_override_library_resync(