# HG changeset patch # User Shinji KONO # Date 1478673802 -32400 # Node ID 4f6a660c14a1c64b5160fc17cf0102d6c30b372d # Parent f31b4e4bf4bb79853e456364f66c2c31ecec0bf0 stack interface worked diff -r f31b4e4bf4bb -r 4f6a660c14a1 src/parallel_execution/origin_cs.c --- a/src/parallel_execution/origin_cs.c Wed Nov 09 13:26:53 2016 +0900 +++ b/src/parallel_execution/origin_cs.c Wed Nov 09 15:43:22 2016 +0900 @@ -3,7 +3,7 @@ #include "context.h" __code meta(struct Context* context, enum Code next) { - printf("meta %d\n",next); + // printf("meta %d\n",next); goto (context->code[next])(context); } diff -r f31b4e4bf4bb -r 4f6a660c14a1 src/parallel_execution/rb_tree.c --- a/src/parallel_execution/rb_tree.c Wed Nov 09 13:26:53 2016 +0900 +++ b/src/parallel_execution/rb_tree.c Wed Nov 09 15:43:22 2016 +0900 @@ -205,7 +205,7 @@ __code insertCase5(struct Context* context, struct Traverse* traverse,struct Stack *nodeStack) { nodeStack->stack = (union Data*)traverse->nodeStack; nodeStack->next = InsertCase51; - goto meta(context, traverse->nodeStack->get2); + goto meta(context, traverse->nodeStack->pop2); } __code insert5_stub(struct Context* context) { @@ -309,7 +309,7 @@ __code stackClear(struct Context* context, struct Traverse* traverse) { traverse->current = 0; - struct SingleLinkedStack* nodeStack = &context->data[Traverse]->traverse.nodeStack->stack->singleLinkedStack; + struct SingleLinkedStack* nodeStack = (struct SingleLinkedStack*)traverse->nodeStack->stack; nodeStack->top = NULL; goto meta(context, context->next); diff -r f31b4e4bf4bb -r 4f6a660c14a1 src/parallel_execution/stack.c --- a/src/parallel_execution/stack.c Wed Nov 09 13:26:53 2016 +0900 +++ b/src/parallel_execution/stack.c Wed Nov 09 15:43:22 2016 +0900 @@ -90,7 +90,10 @@ } __code getSingleLinkedStack(struct Context* context, struct SingleLinkedStack* stack, union Data** data, enum Code next) { - *data = stack->top->data; + if (stack->top) + *data = stack->top->data; + else + *data = NULL; goto meta(context, next); }