Fix crash when creating lib overrides.
Own mistake in recent commit rB2a81d948ad00c50.
This commit is contained in:
parent
88d9eb14d1
commit
9e9ebaba8d
|
@ -470,12 +470,12 @@ static bool lib_override_hierarchy_dependencies_recursive_tag(Main *bmain,
|
|||
* We currently only consider Collections and Objects (that are not used as bone shapes) as valid
|
||||
* boundary IDs to define an override group.
|
||||
*/
|
||||
static void lib_override_linked_group_tag(Main *bmain,
|
||||
ID *id,
|
||||
const uint tag,
|
||||
const uint missing_tag)
|
||||
static void lib_override_linked_group_tag(
|
||||
Main *bmain, ID *id, const uint tag, const uint missing_tag, const bool create_bmain_relations)
|
||||
{
|
||||
BKE_main_relations_create(bmain, 0);
|
||||
if (create_bmain_relations) {
|
||||
BKE_main_relations_create(bmain, 0);
|
||||
}
|
||||
|
||||
if (ELEM(GS(id->name), ID_OB, ID_GR)) {
|
||||
LibOverrideGroupTagData data = {.id_root = id, .tag = tag, .missing_tag = missing_tag};
|
||||
|
@ -498,7 +498,9 @@ static void lib_override_linked_group_tag(Main *bmain,
|
|||
|
||||
lib_override_hierarchy_dependencies_recursive_tag(bmain, id, tag, missing_tag);
|
||||
|
||||
BKE_main_relations_free(bmain);
|
||||
if (create_bmain_relations) {
|
||||
BKE_main_relations_free(bmain);
|
||||
}
|
||||
}
|
||||
|
||||
static int lib_override_local_group_tag_cb(LibraryIDLinkCallbackData *cb_data)
|
||||
|
@ -582,9 +584,11 @@ static bool lib_override_library_create_do(Main *bmain, ID *id_root)
|
|||
|
||||
BKE_main_relations_create(bmain, 0);
|
||||
|
||||
lib_override_linked_group_tag(bmain, id_root, LIB_TAG_DOIT, LIB_TAG_MISSING);
|
||||
lib_override_linked_group_tag(bmain, id_root, LIB_TAG_DOIT, LIB_TAG_MISSING, false);
|
||||
lib_override_hierarchy_dependencies_recursive_tag(bmain, id_root, LIB_TAG_DOIT, LIB_TAG_MISSING);
|
||||
|
||||
BKE_main_relations_free(bmain);
|
||||
|
||||
return BKE_lib_override_library_create_from_tag(bmain);
|
||||
}
|
||||
|
||||
|
@ -781,7 +785,7 @@ bool BKE_lib_override_library_resync(Main *bmain, Scene *scene, ViewLayer *view_
|
|||
|
||||
lib_override_local_group_tag(bmain, id_root, LIB_TAG_DOIT, LIB_TAG_MISSING);
|
||||
|
||||
lib_override_linked_group_tag(bmain, id_root_reference, LIB_TAG_DOIT, LIB_TAG_MISSING);
|
||||
lib_override_linked_group_tag(bmain, id_root_reference, LIB_TAG_DOIT, LIB_TAG_MISSING, true);
|
||||
|
||||
/* Make a mapping 'linked reference IDs' -> 'Local override IDs' of existing overrides. */
|
||||
GHash *linkedref_to_old_override = BLI_ghash_new(
|
||||
|
|
Loading…
Reference in New Issue