[Bf-blender-cvs] [3deb56424f2] master: Cleanup/Fix outliner 'make local' code.
Bastien Montagne
noreply at git.blender.org
Thu Sep 16 14:31:09 CEST 2021
Commit: 3deb56424f2927ffe8a7ca8ef3de3fa5bc56e304
Author: Bastien Montagne
Date: Thu Sep 16 12:41:21 2021 +0200
Branches: master
https://developer.blender.org/rB3deb56424f2927ffe8a7ca8ef3de3fa5bc56e304
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.
===================================================================
M source/blender/editors/space_outliner/outliner_tools.c
===================================================================
diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c
index 062d98c93af..9e314701719 100644
--- a/source/blender/editors/space_outliner/outliner_tools.c
+++ b/source/blender/editors/space_outliner/outliner_tools.c
@@ -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)) {
More information about the Bf-blender-cvs
mailing list