# HG changeset patch # User kono # Date 1475155356 -32400 # Node ID fe1fbfec7d011c43b7d9d0f664eadd50c297f0db # Parent c7ac153f86dd593590b723dbdde7f43cf5024be2 stack clear diff -r c7ac153f86dd -r fe1fbfec7d01 src/parallel_execution/rb_tree.c --- a/src/parallel_execution/rb_tree.c Thu Sep 29 19:02:49 2016 +0900 +++ b/src/parallel_execution/rb_tree.c Thu Sep 29 22:22:36 2016 +0900 @@ -110,31 +110,32 @@ context->data[Traverse]->traverse.result); } -__code insertNode(struct Context* context, struct Traverse* traverse, struct Tree* tree, struct Node* node, struct Node* newNode) { +__code insertNode(struct Context* context, struct Traverse* traverse, struct Node* node, struct Node* newNode) { *newNode = *node; newNode->color = Red; traverse->current = newNode; - tree->root->color = Black; goto meta(context, InsertCase1); } __code insertNode_stub(struct Context* context) { goto insertNode(context, &context->data[Traverse]->traverse, - &context->data[Tree]->tree, &context->data[Node]->node, context->data[Traverse]->traverse.newNode); } -__code insertCase1(struct Context* context, struct Element* nodeStack) { +__code insertCase1(struct Context* context, struct Tree* tree,struct Element* nodeStack) { if (nodeStack!=NULL) { goto meta(context, InsertCase2); } + tree->root->color = Black; goto meta(context, StackClear); } __code insert1_stub(struct Context* context) { - goto insertCase1(context, context->data[Traverse]->traverse.nodeStack); + goto insertCase1(context, + &context->data[Tree]->tree, + context->data[Traverse]->traverse.nodeStack); } __code insertCase2(struct Context* context, struct Node* parent) { @@ -331,6 +332,7 @@ __code stackClear(struct Context* context, stack_ptr node_stack, struct Traverse* traverse) { traverse->current = 0; + traverse->nodeStack = NULL; goto meta(context, context->next); }