[Bf-blender-cvs] [ae2033a] master: Add BKE_key_copy_ex() that takes a Main as parameter.

Bastien Montagne noreply at git.blender.org
Sat Jul 9 15:44:57 CEST 2016


Commit: ae2033aca2047afbfe0bf449bcd01b5b79a124b8
Author: Bastien Montagne
Date:   Sat Jul 9 15:43:45 2016 +0200
Branches: master
https://developer.blender.org/rBae2033aca2047afbfe0bf449bcd01b5b79a124b8

Add BKE_key_copy_ex() that takes a Main as parameter.

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

M	source/blender/blenkernel/BKE_key.h
M	source/blender/blenkernel/intern/curve.c
M	source/blender/blenkernel/intern/key.c
M	source/blender/blenkernel/intern/lattice.c
M	source/blender/blenkernel/intern/mesh.c
M	source/blender/editors/mesh/meshtools.c

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

diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h
index a278fd5..86484db 100644
--- a/source/blender/blenkernel/BKE_key.h
+++ b/source/blender/blenkernel/BKE_key.h
@@ -52,6 +52,7 @@ void        BKE_key_free(struct Key *sc);
 void        BKE_key_free_nolib(struct Key *key);
 struct Key *BKE_key_add(struct ID *id);
 struct Key *BKE_key_copy(struct Key *key);
+struct Key *BKE_key_copy_ex(struct Main *bmain, struct Key *key);
 struct Key *BKE_key_copy_nolib(struct Key *key);
 void        BKE_key_make_local(struct Main *bmain, struct Key *key);
 void        BKE_key_sort(struct Key *key);
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index d3c5d28..4dc0f1c 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -195,7 +195,7 @@ Curve *BKE_curve_copy_ex(Main *bmain, Curve *cu)
 	cun->bb = MEM_dupallocN(cu->bb);
 
 	if (cu->key) {
-		cun->key = BKE_key_copy(cu->key);
+		cun->key = BKE_key_copy_ex(bmain, cu->key);
 		cun->key->from = (ID *)cun;
 	}
 
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index 45686e9..ed80954 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -150,12 +150,12 @@ Key *BKE_key_add(ID *id)    /* common function */
 	return key;
 }
 
-Key *BKE_key_copy(Key *key)
+Key *BKE_key_copy_ex(Main *bmain, Key *key)
 {
 	Key *keyn;
 	KeyBlock *kbn, *kb;
 	
-	keyn = BKE_libblock_copy(&key->id);
+	keyn = BKE_libblock_copy_ex(bmain, &key->id);
 	
 	BLI_duplicatelist(&keyn->block, &key->block);
 	
@@ -171,12 +171,16 @@ Key *BKE_key_copy(Key *key)
 	}
 
 	if (ID_IS_LINKED_DATABLOCK(key)) {
-		BKE_id_lib_local_paths(G.main, key->id.lib, &keyn->id);
+		BKE_id_lib_local_paths(bmain, key->id.lib, &keyn->id);
 	}
 
 	return keyn;
 }
 
+Key *BKE_key_copy(Key *key)
+{
+	return BKE_key_copy_ex(G.main, key);
+}
 
 Key *BKE_key_copy_nolib(Key *key)
 {
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index 3e03690..e85fad5 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -285,7 +285,7 @@ Lattice *BKE_lattice_copy_ex(Main *bmain, Lattice *lt)
 	ltn->def = MEM_dupallocN(lt->def);
 
 	if (lt->key) {
-		ltn->key = BKE_key_copy(ltn->key);
+		ltn->key = BKE_key_copy_ex(bmain, ltn->key);
 		ltn->key->from = (ID *)ltn;
 	}
 	
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index de9be3d..b2ab83a 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -549,7 +549,7 @@ Mesh *BKE_mesh_copy_ex(Main *bmain, Mesh *me)
 	men->bb = MEM_dupallocN(men->bb);
 	
 	if (me->key) {
-		men->key = BKE_key_copy(me->key);
+		men->key = BKE_key_copy_ex(bmain, me->key);
 		men->key->from = (ID *)men;
 	}
 
diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c
index 05145f7..1b5fc4e 100644
--- a/source/blender/editors/mesh/meshtools.c
+++ b/source/blender/editors/mesh/meshtools.c
@@ -172,7 +172,7 @@ int join_mesh_exec(bContext *C, wmOperator *op)
 	 */
 	if (key) {
 		/* make a duplicate copy that will only be used here... (must remember to free it!) */
-		nkey = BKE_key_copy(key);
+		nkey = BKE_key_copy_ex(bmain, key);
 		
 		/* for all keys in old block, clear data-arrays */
 		for (kb = key->block.first; kb; kb = kb->next) {




More information about the Bf-blender-cvs mailing list