Commit: c710ca89332bb392ccff8d6bf0be19255ba16b0c
Author: Bastien Montagne
Date:   Mon Jan 14 16:22:27 2019 +0100
Branches: master
https://developer.blender.org/rBc710ca89332bb392ccff8d6bf0be19255ba16b0c

Cleanup: Remove deprecated BKE_libblock_free(_ex) functions, document 
BKE_id_free(_ex) ones.

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

M       source/blender/blenkernel/BKE_library.h
M       source/blender/blenkernel/intern/library_remap.c

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

diff --git a/source/blender/blenkernel/BKE_library.h 
b/source/blender/blenkernel/BKE_library.h
index a4eb40cbb38..5285fe430f4 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -123,10 +123,7 @@ enum {
 
 void BKE_id_free_ex(struct Main *bmain, void *idv, int flag, const bool 
use_flag_from_idtag);
 void BKE_id_free(struct Main *bmain, void *idv);
-/* Those three naming are bad actually, should be BKE_id_free... (since it 
goes beyond mere datablock). */
-/* "Deprecated" old API */
-void  BKE_libblock_free_ex(struct Main *bmain, void *idv, const bool 
do_id_user, const bool do_ui_user) ATTR_NONNULL();
-void  BKE_libblock_free(struct Main *bmain, void *idv) ATTR_NONNULL();
+
 void  BKE_libblock_free_us(struct Main *bmain, void *idv) ATTR_NONNULL();
 
 void BKE_libblock_management_main_add(struct Main *bmain, void *idv);
diff --git a/source/blender/blenkernel/intern/library_remap.c 
b/source/blender/blenkernel/intern/library_remap.c
index e7afd980aa4..2ee4e2890a1 100644
--- a/source/blender/blenkernel/intern/library_remap.c
+++ b/source/blender/blenkernel/intern/library_remap.c
@@ -807,7 +807,17 @@ void BKE_libblock_free_datablock(ID *id, const int 
UNUSED(flag))
        }
 }
 
-
+/**
+ * Complete ID freeing, extended version for corner cases.
+ * Can override default (and safe!) freeing process, to gain some speed up.
+ *
+ * \param bmain Main database containing the freed ID, can be NULL in case 
it's a temp ID outside of any Main.
+ * \param idv Pointer to ID to be freed.
+ * \param flag Set of \a LIB_ID_FREE_... flags controlling/overriding usual 
freeing process,
+ *             0 to get default safe behavior.
+ * \param use_flag_from_idtag Still use freeing info flags from given ID 
datablock,
+ *                            even if some overriding ones are passed in \a 
falg parameter.
+ */
 void BKE_id_free_ex(Main *bmain, void *idv, int flag, const bool 
use_flag_from_idtag)
 {
        ID *id = idv;
@@ -891,66 +901,15 @@ void BKE_id_free_ex(Main *bmain, void *idv, int flag, 
const bool use_flag_from_i
        }
 }
 
-void BKE_id_free(Main *bmain, void *idv)
-{
-       BKE_id_free_ex(bmain, idv, 0, true);
-}
-
 /**
- * used in headerbuttons.c image.c mesh.c screen.c sound.c and library.c
+ * Complete ID freeing, should be usable in most cases (even for out-of-Main 
IDs).
  *
- * \param do_id_user: if \a true, try to release other ID's 'references' hold 
by \a idv.
- *                    (only applies to main database)
- * \param do_ui_user: similar to do_id_user but makes sure UI does not hold 
references to
- *                    \a id.
+ * \param bmain Main database containing the freed ID, can be NULL in case 
it's a temp ID outside of any Main.
+ * \param idv Pointer to ID to be freed.
  */
-void BKE_libblock_free_ex(Main *bmain, void *idv, const bool do_id_user, const 
bool do_ui_user)
-{
-       ID *id = idv;
-       short type = GS(id->name);
-       ListBase *lb = which_libbase(bmain, type);
-
-       DEG_id_type_tag(bmain, type);
-
-#ifdef WITH_PYTHON
-#ifdef WITH_PYTHON_SAFETY
-       BPY_id_release(id);
-#endif
-       if (id->py_instance) {
-               BPY_DECREF_RNA_INVALIDATE(id->py_instance);
-       }
-#endif
-
-       if (do_id_user) {
-               BKE_libblock_relink_ex(bmain, id, NULL, NULL, true);
-       }
-
-       BKE_libblock_free_datablock(id, 0);
-
-       /* avoid notifying on removed data */
-       BKE_main_lock(bmain);
-
-       if (do_ui_user) {
-               if (free_notifier_reference_cb) {
-                       free_notifier_reference_cb(id);
-               }
-
-               if (remap_editor_id_reference_cb) {
-                       remap_editor_id_reference_cb(id, NULL);
-               }
-       }
-
-       BLI_remlink(lb, id);
-
-       BKE_libblock_free_data(id, do_id_user);
-       BKE_main_unlock(bmain);
-
-       MEM_freeN(id);
-}
-
-void BKE_libblock_free(Main *bmain, void *idv)
+void BKE_id_free(Main *bmain, void *idv)
 {
-       BKE_id_free(bmain, idv);
+       BKE_id_free_ex(bmain, idv, 0, true);
 }
 
 void BKE_libblock_free_us(Main *bmain, void *idv)      /* test users */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to