[Bf-blender-cvs] [67c490daafd] blender-v3.0-release: Fix T93548: Appended (material) assets don't have a fake user

Julian Eisel noreply at git.blender.org
Thu Dec 2 11:18:35 CET 2021


Commit: 67c490daafd9642f91c2ca7a93482e3176e4c70c
Author: Julian Eisel
Date:   Thu Dec 2 11:16:22 2021 +0100
Branches: blender-v3.0-release
https://developer.blender.org/rB67c490daafd9642f91c2ca7a93482e3176e4c70c

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

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

M	source/blender/blenkernel/intern/lib_id.c

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

diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c
index cd5b266eb75..cfc3502e2cd 100644
--- a/source/blender/blenkernel/intern/lib_id.c
+++ b/source/blender/blenkernel/intern/lib_id.c
@@ -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



More information about the Bf-blender-cvs mailing list