diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-05-09 12:29:59 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-05-09 12:29:59 +0400 |
commit | 3fb67ac16db112b5404e0ed6ffa43deb09596381 (patch) | |
tree | 8c698222fca1049da03aec813b7c6e3c4d8f8cbe /source | |
parent | 89d77c538a6ad3645a0f04d686e1050b86b97368 (diff) |
Fix for do_versions bug with node groups: The special case of direct input-to-output connections was not handled correctly. In this case both the tonode and fromnode pointers in old node groups are NULL.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 5e01b03cd64..a76d7eaff6d 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2526,9 +2526,11 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) link->fromsock = node_group_input_find_socket(input_node, link->fromsock->identifier); ++num_inputs; - if (input_locx > link->tonode->locx - offsetx) - input_locx = link->tonode->locx - offsetx; - input_locy += link->tonode->locy; + if (link->tonode) { + if (input_locx > link->tonode->locx - offsetx) + input_locx = link->tonode->locx - offsetx; + input_locy += link->tonode->locy; + } } else free_link = TRUE; @@ -2540,9 +2542,11 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) link->tosock = node_group_output_find_socket(output_node, link->tosock->identifier); ++num_outputs; - if (output_locx < link->fromnode->locx + offsetx) - output_locx = link->fromnode->locx + offsetx; - output_locy += link->fromnode->locy; + if (link->fromnode) { + if (output_locx < link->fromnode->locx + offsetx) + output_locx = link->fromnode->locx + offsetx; + output_locy += link->fromnode->locy; + } } else free_link = TRUE; |