diff options
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/node.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc index 4acccca322a..d3f61d381f2 100644 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@ -487,6 +487,9 @@ static void write_node_socket(BlendWriter *writer, bNodeSocket *sock) IDP_BlendWrite(writer, sock->prop); } + /* This property should only be used for group node "interface" sockets. */ + BLI_assert(sock->default_attribute_name == nullptr); + write_node_socket_default_value(writer, sock); } static void write_node_socket_interface(BlendWriter *writer, bNodeSocket *sock) @@ -497,6 +500,8 @@ static void write_node_socket_interface(BlendWriter *writer, bNodeSocket *sock) IDP_BlendWrite(writer, sock->prop); } + BLO_write_string(writer, sock->default_attribute_name); + write_node_socket_default_value(writer, sock); } @@ -650,6 +655,7 @@ static void direct_link_node_socket(BlendDataReader *reader, bNodeSocket *sock) sock->typeinfo = nullptr; BLO_read_data_address(reader, &sock->storage); BLO_read_data_address(reader, &sock->default_value); + BLO_read_data_address(reader, &sock->default_attribute_name); sock->total_inputs = 0; /* Clear runtime data set before drawing. */ sock->cache = nullptr; sock->declaration = nullptr; @@ -2161,6 +2167,9 @@ static void node_socket_copy(bNodeSocket *sock_dst, const bNodeSocket *sock_src, } } + sock_dst->default_attribute_name = static_cast<char *>( + MEM_dupallocN(sock_src->default_attribute_name)); + sock_dst->stack_index = 0; /* XXX some compositor nodes (e.g. image, render layers) still store * some persistent buffer data here, need to clear this to avoid dangling pointers. */ |