diff options
author | Ton Roosendaal <ton@blender.org> | 2012-11-04 15:53:13 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2012-11-04 15:53:13 +0400 |
commit | 2122eda05ab3e44fe0b45603725135d8983b82b7 (patch) | |
tree | 7c147fab8c09ac17e9c58f064b9ff7eb5ba3ff9d /source/blender/blenkernel/intern/node.c | |
parent | 7579a9ec37ba476b0379af227b4c704d966e8158 (diff) |
Bugfix 33075
Nodes could use duplicated memory - and on free you get duplicate-free errors.
Affected texture nodes, but I suspect compositing too.
Fix found by Philipp Oeser. Thanks!
Diffstat (limited to 'source/blender/blenkernel/intern/node.c')
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index cbe3b7dd231..153eb5271c5 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -405,10 +405,14 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node) nnode->new_node = NULL; /* only shader nodes get pleasant preview updating this way, compo uses own system */ - if (node->preview && ntree->type == NTREE_SHADER) { - nnode->preview = MEM_dupallocN(node->preview); - if (node->preview->rect) - nnode->preview->rect = MEM_dupallocN(node->preview->rect); + if (node->preview) { + if (ntree->type == NTREE_SHADER) { + nnode->preview = MEM_dupallocN(node->preview); + if (node->preview->rect) + nnode->preview->rect = MEM_dupallocN(node->preview->rect); + } + else + nnode->preview = NULL; } if (ntree) |