Fix T93548: Appended (material) assets don't have a fake user

Since our design is to always keep data-blocks marked as assets on exit,
and our technical design for this is to do this via fake users, ensure
the fake user is set for an appended asset.

Reviewed by: Bastien Montagne

Differential Revision: https://developer.blender.org/D13443
This commit is contained in:
Julian Eisel 2021-12-02 11:16:22 +01:00
parent 68e3755209
commit 67c490daaf
Notes: blender-bot 2023-02-14 07:25:46 +01:00
Referenced by issue #93548, Assets: Appended (material) assets don't have a fake user
1 changed files with 8 additions and 2 deletions

View File

@ -179,8 +179,14 @@ void BKE_lib_id_clear_library_data(Main *bmain, ID *id, const int flags)
BKE_lib_libblock_session_uuid_renew(id);
}
if ((flags & LIB_ID_MAKELOCAL_ASSET_DATA_CLEAR) != 0 && id->asset_data != NULL) {
BKE_asset_metadata_free(&id->asset_data);
if (ID_IS_ASSET(id)) {
if ((flags & LIB_ID_MAKELOCAL_ASSET_DATA_CLEAR) != 0) {
BKE_asset_metadata_free(&id->asset_data);
}
else {
/* Assets should always have a fake user. Ensure this is the case after "Make Local". */
id_fake_user_set(id);
}
}
/* We need to tag this IDs and all of its users, conceptually new local ID and original linked