Cleanup/Fix outliner 'make local' code.

While likely harmless, this code was doing extremely bad thing,
by-passing the whole lower-level `BKE_lib_id_make_local` call in case it
would fail and deciding by itself to forcefully make the given ID local.
Bad. Very, very, very bad.
This commit is contained in:
Bastien Montagne 2021-09-16 12:41:21 +02:00
parent e04a10adab
commit 3deb56424f
1 changed files with 2 additions and 7 deletions

View File

@ -737,13 +737,8 @@ static void id_local_fn(bContext *C,
{
if (ID_IS_LINKED(tselem->id) && (tselem->id->tag & LIB_TAG_EXTERN)) {
Main *bmain = CTX_data_main(C);
/* if the ID type has no special local function,
* just clear the lib */
if (!BKE_lib_id_make_local(bmain, tselem->id, 0)) {
BKE_lib_id_clear_library_data(bmain, tselem->id);
}
else {
BKE_main_id_newptr_and_tag_clear(bmain);
if (BKE_lib_id_make_local(bmain, tselem->id, 0)) {
BKE_id_newptr_and_tag_clear(tselem->id);
}
}
else if (ID_IS_OVERRIDE_LIBRARY_REAL(tselem->id)) {