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-04-18 17:16:38 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2013-04-18 17:16:38 +0400
commit1d004e571aeca4c1ad7c4d554b57542aaaeb6099 (patch)
treeb86e60f0c9635e5318b8b0ca147ac0e0fbfae1df /source/blender/editors/space_node/node_templates.c
parent0b0abfe6fb4ee09b99cf4f4853eb6faef7fd39a4 (diff)
A few fixes for recent own commit r56133.
* Index was assigned after increment, leading to NULL pointer access later on when looking up socket from list * Copying default_value requires a valid NULL pointer for clean check * Was using default_values as parameters instead of sockets, void pointers just passed through without warning ...
Diffstat (limited to 'source/blender/editors/space_node/node_templates.c')
-rw-r--r--source/blender/editors/space_node/node_templates.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c
index 973cb5acc80..2b7101c8c4e 100644
--- a/source/blender/editors/space_node/node_templates.c
+++ b/source/blender/editors/space_node/node_templates.c
@@ -246,9 +246,11 @@ static void node_socket_add_replace(const bContext *C, bNodeTree *ntree, bNode *
nodeRemLink(ntree, link);
}
- if (sock_from->default_value)
+ if (sock_from->default_value) {
MEM_freeN(sock_from->default_value);
- node_socket_copy_default_value(sock_from->default_value, sock_prev->default_value);
+ sock_from->default_value = NULL;
+ }
+ node_socket_copy_default_value(sock_from, sock_prev);
}
}
}
@@ -313,8 +315,8 @@ static void ui_node_link_items(NodeLinkArg *arg, int in_out, NodeLinkItem **r_it
ListBase *lb = (in_out == SOCK_IN ? &ngroup->inputs : &ngroup->outputs);
bNodeSocket *stemp;
int index;
- for (stemp = lb->first, index = 0; stemp; stemp = stemp->next, ++index) {
- NodeLinkItem *item = &items[i++];
+ for (stemp = lb->first, index = 0; stemp; stemp = stemp->next, ++index, ++i) {
+ NodeLinkItem *item = &items[i];
item->socket_index = index;
/* note: int stemp->type is not fully reliable, not used for node group
@@ -340,8 +342,8 @@ static void ui_node_link_items(NodeLinkArg *arg, int in_out, NodeLinkItem **r_it
items = MEM_callocN(sizeof(NodeLinkItem) * totitems, "ui node link items");
i = 0;
- for (stemp = socket_templates; stemp && stemp->type != -1; ++stemp) {
- NodeLinkItem *item = &items[i++];
+ for (stemp = socket_templates; stemp && stemp->type != -1; ++stemp, ++i) {
+ NodeLinkItem *item = &items[i];
item->socket_index = i;
item->socket_type = stemp->type;