[Bf-blender-cvs] [4e597a5cff6] master: Cleanup: ID make local: remove `id_in_bmain` argument.

Bastien Montagne noreply at git.blender.org
Wed Mar 4 11:43:39 CET 2020


Commit: 4e597a5cff6bb4195b8fc9c8102bfbdc4958b31f
Author: Bastien Montagne
Date:   Wed Mar 4 11:05:41 2020 +0100
Branches: master
https://developer.blender.org/rB4e597a5cff6bb4195b8fc9c8102bfbdc4958b31f

Cleanup: ID make local: remove `id_in_bmain` argument.

This info is now stored in ID tags themselves, so no need to pass an
extra anonymous boolean parameter around, yay!

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

M	source/blender/blenkernel/BKE_lib_id.h
M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/action.c
M	source/blender/blenkernel/intern/armature.c
M	source/blender/blenkernel/intern/cachefile.c
M	source/blender/blenkernel/intern/camera.c
M	source/blender/blenkernel/intern/collection.c
M	source/blender/blenkernel/intern/curve.c
M	source/blender/blenkernel/intern/font.c
M	source/blender/blenkernel/intern/gpencil.c
M	source/blender/blenkernel/intern/image.c
M	source/blender/blenkernel/intern/lattice.c
M	source/blender/blenkernel/intern/lib_id.c
M	source/blender/blenkernel/intern/light.c
M	source/blender/blenkernel/intern/lightprobe.c
M	source/blender/blenkernel/intern/linestyle.c
M	source/blender/blenkernel/intern/mask.c
M	source/blender/blenkernel/intern/material.c
M	source/blender/blenkernel/intern/mball.c
M	source/blender/blenkernel/intern/mesh.c
M	source/blender/blenkernel/intern/movieclip.c
M	source/blender/blenkernel/intern/node.c
M	source/blender/blenkernel/intern/paint.c
M	source/blender/blenkernel/intern/particle.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenkernel/intern/sound.c
M	source/blender/blenkernel/intern/speaker.c
M	source/blender/blenkernel/intern/text.c
M	source/blender/blenkernel/intern/texture.c
M	source/blender/blenkernel/intern/world.c

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

diff --git a/source/blender/blenkernel/BKE_lib_id.h b/source/blender/blenkernel/BKE_lib_id.h
index aa4ccd9dbb8..fc4612554e9 100644
--- a/source/blender/blenkernel/BKE_lib_id.h
+++ b/source/blender/blenkernel/BKE_lib_id.h
@@ -190,10 +190,7 @@ void id_fake_user_set(struct ID *id);
 void id_fake_user_clear(struct ID *id);
 void BKE_id_clear_newpoin(struct ID *id);
 
-void BKE_lib_id_make_local_generic(struct Main *bmain,
-                                   struct ID *id,
-                                   const bool id_in_mainlist,
-                                   const bool lib_local);
+void BKE_lib_id_make_local_generic(struct Main *bmain, struct ID *id, const bool lib_local);
 bool BKE_lib_id_make_local(struct Main *bmain,
                            struct ID *id,
                            const bool test,
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index e8ccc0c2348..fcf0cd6f165 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -399,10 +399,7 @@ struct bNodeTree **BKE_ntree_ptr_from_id(struct ID *id);
 struct bNodeTree *ntreeFromID(struct ID *id);
 struct ID *BKE_node_tree_find_owner_ID(struct Main *bmain, struct bNodeTree *ntree);
 
-void ntreeMakeLocal(struct Main *bmain,
-                    struct bNodeTree *ntree,
-                    bool id_in_mainlist,
-                    const bool lib_local);
+void ntreeMakeLocal(struct Main *bmain, struct bNodeTree *ntree, const bool lib_local);
 void ntreeFreeLocalNode(struct bNodeTree *ntree, struct bNode *node);
 void ntreeFreeLocalTree(struct bNodeTree *ntree);
 struct bNode *ntreeFindType(const struct bNodeTree *ntree, int type);
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 8477a46bb7e..d9a3ec65a3e 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -93,7 +93,7 @@ bAction *BKE_action_add(Main *bmain, const char name[])
 // does copy_fcurve...
 void BKE_action_make_local(Main *bmain, bAction *act, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &act->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &act->id, lib_local);
 }
 
 /* .................................. */
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 3e27e9e7514..1d4778e6720 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -138,7 +138,7 @@ void BKE_armature_free(bArmature *arm)
 
 void BKE_armature_make_local(Main *bmain, bArmature *arm, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &arm->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &arm->id, lib_local);
 }
 
 static void copy_bonechildren(Bone *bone_dst,
diff --git a/source/blender/blenkernel/intern/cachefile.c b/source/blender/blenkernel/intern/cachefile.c
index 25c4d4aedcf..db3202a6bf3 100644
--- a/source/blender/blenkernel/intern/cachefile.c
+++ b/source/blender/blenkernel/intern/cachefile.c
@@ -213,7 +213,7 @@ CacheFile *BKE_cachefile_copy(Main *bmain, const CacheFile *cache_file)
 
 void BKE_cachefile_make_local(Main *bmain, CacheFile *cache_file, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &cache_file->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &cache_file->id, lib_local);
 }
 
 void BKE_cachefile_reload(Depsgraph *depsgraph, CacheFile *cache_file)
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index bbf5e398017..b27133ab93f 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -98,7 +98,7 @@ Camera *BKE_camera_copy(Main *bmain, const Camera *cam)
 
 void BKE_camera_make_local(Main *bmain, Camera *cam, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &cam->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &cam->id, lib_local);
 }
 
 /** Free (or release) any data used by this camera (does not free the camera itself). */
diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c
index 8a260e918fd..89e1d431cfb 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -371,7 +371,7 @@ Collection *BKE_collection_duplicate(Main *bmain,
 
 void BKE_collection_make_local(Main *bmain, Collection *collection, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &collection->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &collection->id, lib_local);
 }
 
 /********************************* Naming *******************************/
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index be011c10608..e8688cedd9f 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -222,7 +222,7 @@ Curve *BKE_curve_copy(Main *bmain, const Curve *cu)
 
 void BKE_curve_make_local(Main *bmain, Curve *cu, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &cu->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &cu->id, lib_local);
 }
 
 /* Get list of nurbs from editnurbs structure */
diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c
index 20a0e794f03..8d3606525d6 100644
--- a/source/blender/blenkernel/intern/font.c
+++ b/source/blender/blenkernel/intern/font.c
@@ -327,7 +327,7 @@ VFont *BKE_vfont_load_exists(struct Main *bmain, const char *filepath)
 
 void BKE_vfont_make_local(Main *bmain, VFont *vfont, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &vfont->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &vfont->id, lib_local);
 }
 
 static VFont *which_vfont(Curve *cu, CharInfo *info)
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index ce0ed8a9083..5cd5724f07d 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -709,7 +709,7 @@ bGPdata *BKE_gpencil_data_duplicate(Main *bmain, const bGPdata *gpd_src, bool in
 
 void BKE_gpencil_make_local(Main *bmain, bGPdata *gpd, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &gpd->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &gpd->id, lib_local);
 }
 
 /* ************************************************** */
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index efdcf3a92f4..bf59cfb4216 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -464,7 +464,7 @@ Image *BKE_image_copy(Main *bmain, const Image *ima)
 
 void BKE_image_make_local(Main *bmain, Image *ima, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &ima->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &ima->id, lib_local);
 }
 
 void BKE_image_merge(Main *bmain, Image *dest, Image *source)
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index 2f10bdcf732..20d16df8e63 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -331,7 +331,7 @@ void BKE_lattice_free(Lattice *lt)
 
 void BKE_lattice_make_local(Main *bmain, Lattice *lt, const bool lib_local)
 {
-  BKE_lib_id_make_local_generic(bmain, &lt->id, true, lib_local);
+  BKE_lib_id_make_local_generic(bmain, &lt->id, lib_local);
 }
 
 typedef struct LatticeDeformData {
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c
index 6f51356f8fb..fd1b70c18e3 100644
--- a/source/blender/blenkernel/intern/lib_id.c
+++ b/source/blender/blenkernel/intern/lib_id.c
@@ -157,10 +157,11 @@ static void lib_id_library_local_paths(Main *bmain, Library *lib, ID *id)
  * Pull an ID out of a library (make it local). Only call this for IDs that
  * don't have other library users.
  */
-static void lib_id_clear_library_data_ex(Main *bmain, ID *id, const bool id_in_mainlist)
+static void lib_id_clear_library_data_ex(Main *bmain, ID *id)
 {
   bNodeTree *ntree = NULL;
   Key *key = NULL;
+  const bool id_in_mainlist = (id->tag & LIB_TAG_NO_MAIN) == 0;
 
   lib_id_library_local_paths(bmain, id->lib, id);
 
@@ -178,20 +179,18 @@ static void lib_id_clear_library_data_ex(Main *bmain, ID *id, const bool id_in_m
   /* Internal bNodeTree blocks inside data-blocks also stores id->lib,
    * make sure this stays in sync. */
   if ((ntree = ntreeFromID(id))) {
-    lib_id_clear_library_data_ex(
-        bmain, &ntree->id, false); /* Datablocks' nodetree is never in Main. */
+    lib_id_clear_library_data_ex(bmain, &ntree->id);
   }
 
   /* Same goes for shapekeys. */
   if ((key = BKE_key_from_id(id))) {
-    lib_id_clear_library_data_ex(
-        bmain, &key->id, id_in_mainlist); /* sigh, why are keys in Main? */
+    lib_id_clear_library_data_ex(bmain, &key->id);
   }
 }
 
 void BKE_lib_id_clear_library_data(Main *bmain, ID *id)
 {
-  lib_id_clear_library_data_ex(bmain, id, true);
+  lib_id_clear_library_data_ex(bmain, id);
 }
 
 void id_lib_extern(ID *id)
@@ -378,10 +377,7 @@ static void lib_id_copy_ensure_local(Main *bmain, const ID *old_id, ID *new_id)
 /**
  * Generic 'make local' function, works for most of data-block types...
  */
-void BKE_lib_id_make_local_generic(Main *bmain,
-                                   ID *id,
-                                   const bool id_in_mainlist,
-                                   const bool lib_local)
+void BKE_lib_id_make_local_generic(Main *bmain, ID *id, const bool lib_local)
 {
   bool is_local = false, is_lib = false;
 
@@ -400,7 +396,7 @@ void BKE_lib_id_make_local_generic(Main *bmain,
 
   if (lib_local || is_local) {
     if (!is_lib) {
-      lib_id_clear_library_data_ex(bmain, id, id_in_mainlist);
+      lib_id_clear_library_data_ex(bmain, id);
       BKE_lib_id_expand_local(bmain, id);
     }
     else {
@@ -551,7 +547,7 @@ bool BKE_lib_id_make_local(Main *bmain, ID *id, const bool test, const bool lib_
       return true;
     case ID_

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list