# HG changeset patch # User Shohei KOKUBO # Date 1434002918 -32400 # Node ID 399ed10d1760bc37984dfb8382ff0460a92fb76a # Parent 83ee9c75115a0688b771918ceb5a8e88c7714718 modify diff -r 83ee9c75115a -r 399ed10d1760 src/llrb/llrb.c --- a/src/llrb/llrb.c Tue Jun 02 14:17:07 2015 +0900 +++ b/src/llrb/llrb.c Thu Jun 11 15:08:38 2015 +0900 @@ -44,13 +44,22 @@ } } -__code code1(struct Context* context) { - context->data[Allocate]->allocate.size = sizeof(long); - context->data[Allocate]->allocate.next = Code2; +__code code1(struct Context* context, struct Allocate *allocate) { + allocate->size = sizeof(long); + allocate->next = Code2; goto meta(context, Allocator); } +/* __code code1(struct Context* context) { */ +/* context->data[Allocate]->allocate.size = sizeof(long); */ +/* context->data[Allocate]->allocate.next = Code2; */ +/* goto meta(context, Allocator); */ +/* } */ + __code meta(struct Context* context, enum Code next) { + if (next == Code1) + goto code1(context, &context->data[Allocate]->allocate); + goto (context->code[next])(context); } diff -r 83ee9c75115a -r 399ed10d1760 src/llrb/llrbContext.h --- a/src/llrb/llrbContext.h Tue Jun 02 14:17:07 2015 +0900 +++ b/src/llrb/llrbContext.h Thu Jun 11 15:08:38 2015 +0900 @@ -34,7 +34,7 @@ struct Context { int codeNum; - __code (**code) (struct Context *); + __code (**code) (struct Context*); void* heap_start; void* heap; long dataSize;