From 85e51b063854d81b486d7099536bc21404fc627e Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 15 Nov 2016 15:38:03 +0100 Subject: Avoid driver target remapping when freeing the whole database Added BKE_libblock_free_data_ex() which takes special do_id_user argument which basically indicates whether main database was already taken care about not having "dead" pointers. Gives about 40% speedup of main database free with quadbot scene (3.4sec vs. 5.4 sec on quite powerful desktop). --- source/blender/blenkernel/BKE_library.h | 1 + 1 file changed, 1 insertion(+) (limited to 'source/blender/blenkernel/BKE_library.h') diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h index 1cc7014765c..39e8d712630 100644 --- a/source/blender/blenkernel/BKE_library.h +++ b/source/blender/blenkernel/BKE_library.h @@ -68,6 +68,7 @@ void BKE_libblock_free(struct Main *bmain, void *idv) ATTR_NONNULL(); void BKE_libblock_free_ex(struct Main *bmain, void *idv, const bool do_id_user) ATTR_NONNULL(); void BKE_libblock_free_us(struct Main *bmain, void *idv) ATTR_NONNULL(); void BKE_libblock_free_data(struct Main *bmain, struct ID *id) ATTR_NONNULL(); +void BKE_libblock_free_data_ex(struct Main *bmain, struct ID *id, const bool do_id_user) ATTR_NONNULL(); void BKE_libblock_delete(struct Main *bmain, void *idv) ATTR_NONNULL(); void BKE_id_lib_local_paths(struct Main *bmain, struct Library *lib, struct ID *id); -- cgit v1.2.3