diff options
Diffstat (limited to 'source/blender/nodes/intern/node_socket.c')
-rw-r--r-- | source/blender/nodes/intern/node_socket.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c index a37042c9d70..fddcc249f99 100644 --- a/source/blender/nodes/intern/node_socket.c +++ b/source/blender/nodes/intern/node_socket.c @@ -334,6 +334,10 @@ static void standard_node_socket_interface_init_socket(bNodeTree *UNUSED(ntree), /* initialize the type value */ sock->type = sock->typeinfo->type; + /* XXX socket interface 'type' value is not used really, + * but has to match or the copy function will bail out + */ + stemp->type = stemp->typeinfo->type; /* copy default_value settings */ node_socket_copy_default_value(sock, stemp); } @@ -342,7 +346,7 @@ static void standard_node_socket_interface_init_socket(bNodeTree *UNUSED(ntree), static void standard_node_socket_interface_verify_socket(bNodeTree *UNUSED(ntree), bNodeSocket *stemp, bNode *UNUSED(node), bNodeSocket *sock, const char *UNUSED(data_path)) { /* sanity check */ - if (!STREQ(sock->idname, stemp->idname)) + if (sock->type != stemp->typeinfo->type) return; /* make sure both exist */ @@ -381,6 +385,7 @@ static void standard_node_socket_interface_verify_socket(bNodeTree *UNUSED(ntree static void standard_node_socket_interface_from_socket(bNodeTree *UNUSED(ntree), bNodeSocket *stemp, bNode *UNUSED(node), bNodeSocket *sock) { /* initialize settings */ + stemp->type = stemp->typeinfo->type; node_socket_copy_default_value(stemp, sock); } |