[Bf-blender-cvs] [b380d250538] master: Cleanup: define COLLECTION_FLAG_ALL_RUNTIME, use in file read/write

Campbell Barton noreply at git.blender.org
Wed Jan 18 04:19:29 CET 2023


Commit: b380d25053801670502d3d1a7f9e9ff4eeb44811
Author: Campbell Barton
Date:   Wed Jan 18 14:16:36 2023 +1100
Branches: master
https://developer.blender.org/rBb380d25053801670502d3d1a7f9e9ff4eeb44811

Cleanup: define COLLECTION_FLAG_ALL_RUNTIME, use in file read/write

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

M	source/blender/blenkernel/intern/collection.c
M	source/blender/makesdna/DNA_collection_types.h

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

diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c
index 621d8e5df8e..de785ddd38d 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -112,8 +112,7 @@ static void collection_copy_data(Main *bmain, ID *id_dst, const ID *id_src, cons
     collection_dst->preview = NULL;
   }
 
-  collection_dst->flag &= ~COLLECTION_HAS_OBJECT_CACHE;
-  collection_dst->flag &= ~COLLECTION_HAS_OBJECT_CACHE_INSTANCED;
+  collection_dst->flag &= ~(COLLECTION_HAS_OBJECT_CACHE | COLLECTION_HAS_OBJECT_CACHE_INSTANCED);
   BLI_listbase_clear(&collection_dst->runtime.object_cache);
   BLI_listbase_clear(&collection_dst->runtime.object_cache_instanced);
 
@@ -206,11 +205,9 @@ static void collection_blend_write(BlendWriter *writer, ID *id, const void *id_a
 {
   Collection *collection = (Collection *)id;
 
-  /* Clean up, important in undo case to reduce false detection of changed data-blocks. */
-  collection->flag &= ~COLLECTION_HAS_OBJECT_CACHE;
-  collection->flag &= ~COLLECTION_HAS_OBJECT_CACHE_INSTANCED;
-
   memset(&collection->runtime, 0, sizeof(collection->runtime));
+  /* Clean up, important in undo case to reduce false detection of changed data-blocks. */
+  collection->flag &= ~COLLECTION_FLAG_ALL_RUNTIME;
 
   /* write LibData */
   BLO_write_id_struct(writer, Collection, id_address, &collection->id);
@@ -259,6 +256,8 @@ void BKE_collection_blend_read_data(BlendDataReader *reader, Collection *collect
   }
 
   memset(&collection->runtime, 0, sizeof(collection->runtime));
+  collection->flag &= ~COLLECTION_FLAG_ALL_RUNTIME;
+
   collection->runtime.owner_id = owner_id;
 
   BLO_read_list(reader, &collection->gobject);
@@ -267,9 +266,6 @@ void BKE_collection_blend_read_data(BlendDataReader *reader, Collection *collect
   BLO_read_data_address(reader, &collection->preview);
   BKE_previewimg_blend_read(reader, collection->preview);
 
-  collection->flag &= ~COLLECTION_HAS_OBJECT_CACHE;
-  collection->flag &= ~COLLECTION_HAS_OBJECT_CACHE_INSTANCED;
-
 #ifdef USE_COLLECTION_COMPAT_28
   /* This runs before the very first doversion. */
   BLO_read_data_address(reader, &collection->collection);
@@ -842,8 +838,7 @@ ListBase BKE_collection_object_cache_instanced_get(Collection *collection)
 static void collection_object_cache_free(Collection *collection)
 {
   /* Clear own cache an for all parents, since those are affected by changes as well. */
-  collection->flag &= ~COLLECTION_HAS_OBJECT_CACHE;
-  collection->flag &= ~COLLECTION_HAS_OBJECT_CACHE_INSTANCED;
+  collection->flag &= ~(COLLECTION_HAS_OBJECT_CACHE | COLLECTION_HAS_OBJECT_CACHE_INSTANCED);
   BLI_freelistN(&collection->runtime.object_cache);
   BLI_freelistN(&collection->runtime.object_cache_instanced);
 
diff --git a/source/blender/makesdna/DNA_collection_types.h b/source/blender/makesdna/DNA_collection_types.h
index d97d3d17182..8ec6626f4b3 100644
--- a/source/blender/makesdna/DNA_collection_types.h
+++ b/source/blender/makesdna/DNA_collection_types.h
@@ -113,6 +113,9 @@ enum {
   COLLECTION_HAS_OBJECT_CACHE_INSTANCED = (1 << 6),
 };
 
+#define COLLECTION_FLAG_ALL_RUNTIME \
+  (COLLECTION_HAS_OBJECT_CACHE | COLLECTION_HAS_OBJECT_CACHE_INSTANCED)
+
 /** #Collection_Runtime.tag */
 enum {
   /**



More information about the Bf-blender-cvs mailing list