Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2016-07-09 16:43:45 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-07-09 16:44:12 +0300
commitae2033aca2047afbfe0bf449bcd01b5b79a124b8 (patch)
tree1c9352aa245b78d4ab077ef2548e12e8a87edbcc /source/blender
parent429394078bde004f608e0f9ba9937421ab35edfd (diff)
Add BKE_key_copy_ex() that takes a Main as parameter.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_key.h1
-rw-r--r--source/blender/blenkernel/intern/curve.c2
-rw-r--r--source/blender/blenkernel/intern/key.c10
-rw-r--r--source/blender/blenkernel/intern/lattice.c2
-rw-r--r--source/blender/blenkernel/intern/mesh.c2
-rw-r--r--source/blender/editors/mesh/meshtools.c2
6 files changed, 12 insertions, 7 deletions
diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h
index a278fd54f9b..86484db3809 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 d3c5d28ddbb..4dc0f1ccf8c 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 45686e9f450..ed8095444a4 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 3e03690a1a6..e85fad55532 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 de9be3d835d..b2ab83a7018 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 05145f7bf29..1b5fc4e8a1c 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) {