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:
authorLukas Toenne <lukas.toenne@googlemail.com>2013-09-12 12:43:24 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2013-09-12 12:43:24 +0400
commit6030c0b68f2641c80b07dbac2a750ba167b84fc9 (patch)
treebd564e3f0d99bd87d92e338d97adcb683f7dc7fd
parent769c5bade5f31bfa9d0631c9d60d2a70434ecbc3 (diff)
Partial fix for #36706: Prevent invalid sockets in the FileOutput node by removing sockets without storage data.
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_outputFile.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.c b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
index 90b21f1bab0..89c6fbe4590 100644
--- a/source/blender/nodes/composite/nodes/node_composite_outputFile.c
+++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
@@ -225,9 +225,24 @@ static void copy_output_file(bNodeTree *UNUSED(dest_ntree), bNode *dest_node, bN
static void update_output_file(bNodeTree *ntree, bNode *node)
{
- bNodeSocket *sock;
+ bNodeSocket *sock, *sock_next;
PointerRNA ptr;
+ /* XXX fix for #36706: remove invalid sockets added with bpy API.
+ * This is not ideal, but prevents crashes from missing storage.
+ * FileOutput node needs a redesign to support this properly.
+ */
+ for (sock = node->inputs.first; sock; sock = sock_next) {
+ sock_next = sock->next;
+ if (sock->storage == NULL) {
+ nodeRemoveSocket(ntree, node, sock);
+ }
+ }
+ for (sock = node->outputs.first; sock; sock = sock_next) {
+ sock_next = sock->next;
+ nodeRemoveSocket(ntree, node, sock);
+ }
+
cmp_node_update_default(ntree, node);
/* automatically update the socket type based on linked input */