[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