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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-11-23 19:02:55 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-11-23 19:03:14 +0300
commit3bf7c846eeb4a728c62100b40463874d83f5b3e0 (patch)
tree9ce90a2339ca5b26918883c3894eec31c87309ff /source/blender/editors/space_node
parente5abce922094cbacd316253be73eeed6ce5a6e92 (diff)
Fix T57996: Crash - delete node with a driven parameter
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r--source/blender/editors/space_node/node_edit.c5
-rw-r--r--source/blender/editors/space_node/node_group.c4
-rw-r--r--source/blender/editors/space_node/node_templates.c8
3 files changed, 9 insertions, 8 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index aca87261da8..746a37fe565 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -1586,7 +1586,7 @@ static int node_delete_exec(bContext *C, wmOperator *UNUSED(op))
do_tag_update |= (do_tag_update || node_connected_to_output(bmain, snode->edittree, node));
if (node->id)
id_us_min(node->id);
- nodeFreeNode(snode->edittree, node);
+ nodeDeleteNode(bmain, snode->edittree, node);
}
}
@@ -1666,6 +1666,7 @@ void NODE_OT_switch_view_update(wmOperatorType *ot)
/* ****************** Delete with reconnect ******************* */
static int node_delete_reconnect_exec(bContext *C, wmOperator *UNUSED(op))
{
+ Main *bmain = CTX_data_main(C);
SpaceNode *snode = CTX_wm_space_node(C);
bNode *node, *next;
@@ -1679,7 +1680,7 @@ static int node_delete_reconnect_exec(bContext *C, wmOperator *UNUSED(op))
/* check id user here, nodeFreeNode is called for free dbase too */
if (node->id)
id_us_min(node->id);
- nodeFreeNode(snode->edittree, node);
+ nodeDeleteNode(bmain, snode->edittree, node);
}
}
diff --git a/source/blender/editors/space_node/node_group.c b/source/blender/editors/space_node/node_group.c
index 4012cfdaebc..c7c856d95c4 100644
--- a/source/blender/editors/space_node/node_group.c
+++ b/source/blender/editors/space_node/node_group.c
@@ -342,11 +342,11 @@ static int node_group_ungroup(Main *bmain, bNodeTree *ntree, bNode *gnode)
while (nodes_delayed_free) {
node = BLI_linklist_pop(&nodes_delayed_free);
- nodeFreeNode(ntree, node);
+ nodeDeleteNode(bmain, ntree, node);
}
/* delete the group instance */
- nodeFreeNode(ntree, gnode);
+ nodeDeleteNode(bmain, ntree, gnode);
ntree->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c
index 64c898cb628..47e9bc7fa26 100644
--- a/source/blender/editors/space_node/node_templates.c
+++ b/source/blender/editors/space_node/node_templates.c
@@ -124,7 +124,7 @@ static void node_clear_recursive(bNode *node)
node_clear_recursive(input->link->fromnode);
}
-static void node_remove_linked(bNodeTree *ntree, bNode *rem_node)
+static void node_remove_linked(Main *bmain, bNodeTree *ntree, bNode *rem_node)
{
bNode *node, *next;
bNodeSocket *sock;
@@ -152,7 +152,7 @@ static void node_remove_linked(bNodeTree *ntree, bNode *rem_node)
if (node->flag & NODE_TEST) {
if (node->id)
id_us_min(node->id);
- nodeFreeNode(ntree, node);
+ nodeDeleteNode(bmain, ntree, node);
}
}
}
@@ -178,7 +178,7 @@ static void node_socket_remove(Main *bmain, bNodeTree *ntree, bNode *node_to, bN
if (!sock_to->link)
return;
- node_remove_linked(ntree, sock_to->link->fromnode);
+ node_remove_linked(bmain, ntree, sock_to->link->fromnode);
sock_to->flag |= SOCK_COLLAPSED;
nodeUpdate(ntree, node_to);
@@ -269,7 +269,7 @@ static void node_socket_add_replace(const bContext *C, bNodeTree *ntree, bNode *
}
/* remove node */
- node_remove_linked(ntree, node_prev);
+ node_remove_linked(bmain, ntree, node_prev);
}
nodeUpdate(ntree, node_from);