Mercurial > hg > GearsTemplate
comparison src/include/allocate.h @ 15:907c69e21e56
modify allocate
author | Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 14 Apr 2015 03:37:22 +0900 |
parents | a765eb7f3b7c |
children | 1eb599acffe4 |
comparison
equal
deleted
inserted
replaced
14:d98961bfd0f2 | 15:907c69e21e56 |
---|---|
1 __code allocate(); | 1 __code allocate(); |
2 __code meta_allocate(); | 2 __code meta_allocate(); |
3 extern __code meta(); | |
3 | 4 |
4 __code allocate(Context* context, int size, int num, __code (*next)()) { | 5 __code allocate(struct Context* context) { |
5 goto meta_allocate(context, size, num, next); | 6 goto meta_allocate(context); |
6 } | 7 } |
7 | 8 |
8 __code meta_allocate(Context* context, int size, int num, __code (*next)()) { | 9 __code meta_allocate(struct Context* context) { |
9 context->next = next; | 10 context->dataSize++; |
10 void* ds = context->ds; | 11 goto (context->code[context->data[context->dataSize-1]->allocate.next])(context); |
11 context->ds += size*num; | |
12 ((mdata*)context->mds)->ds = ds; | |
13 ((mdata*)context->mds)->size = size; | |
14 context->mds = (mdata*)context->mds+1; | |
15 goto context->next(context, (data1*)ds); | |
16 } | 12 } |