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 }