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-02-13 16:58:38 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-02-13 17:02:24 +0300
commitc6e3a20ab60ba8fb56886913a5c7a4269d45b4c3 (patch)
tree7239c54775856fc07089cbebe409cd8a460e4fca /source/blender/editors/space_node/node_group.c
parent74a3d9b410e671b81b6b41e16dd9b158882521d3 (diff)
Fix T61506: Wrong user counting with ID properties in pynodes.
Nuke away old nodeCopyNode(), much better to use new BKE_node_copy_ex(), which behaves as expected for the various optional flags that can be passed. This also removes the need to handle ID refcounting in calling code (ugly!) and allows us to remove an even uglier name from our codebase! :D Note that this fixes three related issues actually, that bug was also affecting copy/paste of nodes, and 'Separate with copy' operator (the latter being actually fully wrong, since it was not refcounting anything, not even node->id pointer...).
Diffstat (limited to 'source/blender/editors/space_node/node_group.c')
-rw-r--r--source/blender/editors/space_node/node_group.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/editors/space_node/node_group.c b/source/blender/editors/space_node/node_group.c
index e29d6e054d7..24036a9bf1b 100644
--- a/source/blender/editors/space_node/node_group.c
+++ b/source/blender/editors/space_node/node_group.c
@@ -404,7 +404,7 @@ static int node_group_separate_selected(
for (node = ntree->nodes.first; node; node = node->next)
nodeSetSelected(node, false);
- /* clear new pointers, set in nodeCopyNode */
+ /* clear new pointers, set in BKE_node_copy_ex(). */
for (node = ngroup->nodes.first; node; node = node->next)
node->new_node = NULL;
@@ -422,7 +422,7 @@ static int node_group_separate_selected(
if (make_copy) {
/* make a copy */
- newnode = nodeCopyNode(ngroup, node);
+ newnode = BKE_node_copy_ex(ngroup, node, LIB_ID_COPY_DEFAULT);
}
else {
/* use the existing node */
@@ -541,13 +541,13 @@ static int node_group_separate_exec(bContext *C, wmOperator *op)
switch (type) {
case NODE_GS_COPY:
- if (!node_group_separate_selected(bmain, nparent, ngroup, offx, offy, 1)) {
+ if (!node_group_separate_selected(bmain, nparent, ngroup, offx, offy, true)) {
BKE_report(op->reports, RPT_WARNING, "Cannot separate nodes");
return OPERATOR_CANCELLED;
}
break;
case NODE_GS_MOVE:
- if (!node_group_separate_selected(bmain, nparent, ngroup, offx, offy, 0)) {
+ if (!node_group_separate_selected(bmain, nparent, ngroup, offx, offy, false)) {
BKE_report(op->reports, RPT_WARNING, "Cannot separate nodes");
return OPERATOR_CANCELLED;
}