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>2019-08-22 17:00:59 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-08-22 17:07:36 +0300
commite6f3d8b3e1158ebdc89ceae1de5ce7bc5c420f51 (patch)
tree197389a2268b472a19119fa3faf1f9ab1223240a /source/blender/blenkernel/intern/node.c
parenteae9b86297876d2172681e880fe2bcc8450a01ed (diff)
Revert "Fix T68971: Copy As New Driver from Material node creates a bad reference."
This reverts commits 54fd8176d7e91, 4c5becb6b1 and 8f578150e. Those kind of commits must be reviewed and approved by project owners. That one: * Broke Collada building by not properly updating all calls to modified function. * Broke *whole* ID management by not properly updating library_query.c. And in general, I am strongly against backward ID pointers, those are *always* a serious PITA for ID management. Sometimes they cannot be avoided, but in general other ways to get that kind of info should be investigated first.
Diffstat (limited to 'source/blender/blenkernel/intern/node.c')
-rw-r--r--source/blender/blenkernel/intern/node.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 973b30a640b..206c59c110a 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -1132,7 +1132,7 @@ bNodeTree *ntreeCopyTree_ex_new_pointers(const bNodeTree *ntree,
Main *bmain,
const bool do_id_user)
{
- bNodeTree *new_ntree = ntreeCopyTree_ex(ntree, bmain, NULL, do_id_user);
+ bNodeTree *new_ntree = ntreeCopyTree_ex(ntree, bmain, do_id_user);
bNode *new_node = new_ntree->nodes.first;
bNode *node_src = ntree->nodes.first;
while (new_node != NULL) {
@@ -1394,7 +1394,7 @@ void ntreeInitDefault(bNodeTree *ntree)
ntree_set_typeinfo(ntree, NULL);
}
-bNodeTree *ntreeAddTree(Main *bmain, const char *name, const char *idname, ID *owner)
+bNodeTree *ntreeAddTree(Main *bmain, const char *name, const char *idname)
{
bNodeTree *ntree;
@@ -1408,7 +1408,6 @@ bNodeTree *ntreeAddTree(Main *bmain, const char *name, const char *idname, ID *o
ntree = MEM_callocN(sizeof(bNodeTree), "new node tree");
*((short *)ntree->id.name) = ID_NT;
BLI_strncpy(ntree->id.name + 2, name, sizeof(ntree->id.name));
- ntree->owner = owner;
}
/* Types are fully initialized at this point,
@@ -1529,22 +1528,16 @@ void BKE_node_tree_copy_data(Main *UNUSED(bmain),
ntree_dst->interface_type = NULL;
}
-void BKE_nodetree_copy_owned_ex(Main *bmain, bNodeTree *src, bNodeTree **dst, ID *owner, int flag)
+bNodeTree *ntreeCopyTree_ex(const bNodeTree *ntree, Main *bmain, const bool do_id_user)
{
- if (BKE_id_copy_ex(bmain, (ID *)src, (ID **)dst, flag)) {
- (*dst)->owner = owner;
- }
-}
-bNodeTree *ntreeCopyTree_ex(const bNodeTree *ntree, Main *bmain, ID *owner, const bool do_id_user)
-{
- bNodeTree *ntree_copy = NULL;
+ bNodeTree *ntree_copy;
const int flag = do_id_user ? LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_MAIN : 0;
- BKE_nodetree_copy_owned_ex(bmain, ntree, &ntree_copy, owner, flag);
+ BKE_id_copy_ex(bmain, (ID *)ntree, (ID **)&ntree_copy, flag);
return ntree_copy;
}
-bNodeTree *ntreeCopyTree(Main *bmain, const bNodeTree *ntree, ID *owner)
+bNodeTree *ntreeCopyTree(Main *bmain, const bNodeTree *ntree)
{
- return ntreeCopyTree_ex(ntree, bmain, owner, true);
+ return ntreeCopyTree_ex(ntree, bmain, true);
}
void ntreeUserIncrefID(bNodeTree *ntree)