Cleanup: replace usages of deprecated BKE_libblock_free_ex by BKE_id_free_ex.

This commit is contained in:
2019-01-14 16:15:15 +01:00
parent 6af97b84df
commit cae3750ff9
7 changed files with 54 additions and 47 deletions

View File

@@ -2090,7 +2090,7 @@ void BKE_library_make_local(
* However, this is a highly-risky presumption, and nice crasher in case something goes wrong here.
* So for 2.78a will keep the safe option, and switch to more efficient one in master later. */
#if 1
BKE_libblock_free_ex(bmain, id, false, true);
BKE_id_free_ex(bmain, id, LIB_ID_FREE_NO_USER_REFCOUNT, false);
#else
BKE_libblock_unlink(bmain, id, false, false);
BKE_id_free(bmain, id);

View File

@@ -649,13 +649,13 @@ void BKE_override_static_update(Main *bmain, ID *local)
/* Again, horribly innefficient in our case, we need something off-Main (aka moar generic nolib copy/free stuff)! */
/* XXX And crashing in complex cases (e.g. because depsgraph uses same data...). */
BKE_libblock_free_ex(bmain, tmp_id, true, false);
BKE_id_free_ex(bmain, tmp_id, LIB_ID_FREE_NO_UI_USER, true);
if (local->override_static->storage) {
/* We know this datablock is not used anywhere besides local->override->storage. */
/* XXX For until we get fully shadow copies, we still need to ensure storage releases
* its usage of any ID pointers it may have. */
BKE_libblock_free_ex(bmain, local->override_static->storage, true, false);
BKE_id_free_ex(bmain, local->override_static->storage, LIB_ID_FREE_NO_UI_USER, true);
local->override_static->storage = NULL;
}
@@ -744,7 +744,7 @@ ID *BKE_override_static_operations_store_start(Main *bmain, OverrideStaticStorag
if (!RNA_struct_override_store(
bmain, &rnaptr_final, &rnaptr_reference, &rnaptr_storage, local->override_static))
{
BKE_libblock_free_ex(override_storage, storage_id, true, false);
BKE_id_free_ex(override_storage, storage_id, LIB_ID_FREE_NO_UI_USER, true);
storage_id = NULL;
}
}
@@ -781,7 +781,7 @@ void BKE_override_static_operations_store_finalize(OverrideStaticStorage *overri
ID *id;
while ((id = lb->first)) {
BKE_libblock_free_ex(override_storage, id, true, false);
BKE_id_free_ex(override_storage, id, LIB_ID_FREE_NO_UI_USER, true);
}
}

View File

@@ -950,7 +950,7 @@ void BKE_libblock_free_ex(Main *bmain, void *idv, const bool do_id_user, const b
void BKE_libblock_free(Main *bmain, void *idv)
{
BKE_libblock_free_ex(bmain, idv, true, true);
BKE_id_free(bmain, idv);
}
void BKE_libblock_free_us(Main *bmain, void *idv) /* test users */

View File

@@ -64,61 +64,65 @@ void BKE_main_free(Main *mainvar)
ListBase *lbarray[MAX_LIBARRAY];
int a;
const int free_flag = LIB_ID_FREE_NO_MAIN | LIB_ID_FREE_NO_UI_USER | LIB_ID_FREE_NO_USER_REFCOUNT;
MEM_SAFE_FREE(mainvar->blen_thumb);
a = set_listbasepointers(mainvar, lbarray);
while (a--) {
ListBase *lb = lbarray[a];
ID *id;
ID *id, *id_next;
while ( (id = lb->first) ) {
for (id = lb->first; id != NULL; id = id_next) {
id_next = id->next;
#if 1
BKE_libblock_free_ex(mainvar, id, false, false);
BKE_id_free_ex(mainvar, id, free_flag, false);
#else
/* errors freeing ID's can be hard to track down,
* enable this so valgrind will give the line number in its error log */
switch (a) {
case 0: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 1: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 2: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 3: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 4: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 5: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 6: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 7: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 8: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 9: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 10: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 11: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 12: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 13: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 14: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 15: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 16: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 17: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 18: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 19: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 20: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 21: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 22: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 23: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 24: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 25: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 26: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 27: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 28: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 29: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 30: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 31: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 32: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 33: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 34: BKE_libblock_free_ex(mainvar, id, false, false); break;
case 0: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 1: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 2: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 3: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 4: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 5: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 6: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 7: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 8: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 9: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 10: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 11: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 12: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 13: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 14: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 15: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 16: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 17: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 18: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 19: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 20: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 21: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 22: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 23: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 24: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 25: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 26: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 27: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 28: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 29: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 30: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 31: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 32: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 33: BKE_id_free_ex(mainvar, id, free_flag, false); break;
case 34: BKE_id_free_ex(mainvar, id, free_flag, false); break;
default:
BLI_assert(0);
break;
}
#endif
}
BLI_listbase_clear(lb);
}
if (mainvar->relations) {

View File

@@ -580,7 +580,7 @@ int join_mesh_exec(bContext *C, wmOperator *op)
/* free temp copy of destination shapekeys (if applicable) */
if (nkey) {
/* We can assume nobody is using that ID currently. */
BKE_libblock_free_ex(bmain, nkey, false, false);
BKE_id_free_ex(bmain, nkey, LIB_ID_FREE_NO_UI_USER | LIB_ID_FREE_NO_USER_REFCOUNT, false);
}
/* ensure newly inserted keys are time sorted */

View File

@@ -116,7 +116,7 @@ NodeGroup *BlenderFileLoader::Load()
if (mesh) {
insertShapeNode(ob, mesh, ++id);
BKE_libblock_free_ex(_re->main, &mesh->id, true, false);
BKE_id_free_ex(_re->main, &mesh->id, LIB_ID_FREE_NO_UI_USER, true);
}
}
DEG_OBJECT_ITER_END;

View File

@@ -137,7 +137,10 @@ static void rna_Main_ID_remove(
RNA_POINTER_INVALIDATE(id_ptr);
}
else if (ID_REAL_USERS(id) <= 0) {
BKE_libblock_free_ex(bmain, id, do_id_user, do_ui_user);
const int flag = (do_id_user ? 0 : LIB_ID_FREE_NO_USER_REFCOUNT) |
(do_ui_user ? 0 : LIB_ID_FREE_NO_UI_USER);
/* Still using ID flags here, this is in-between commit anyway... */
BKE_id_free_ex(bmain, id, flag, true);
RNA_POINTER_INVALIDATE(id_ptr);
}
else {