view paper/source/context.c @ 8:bb5fab31cf41

add source file
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 05 May 2015 17:49:31 +0900
parents
children
line wrap: on
line source

#include <stdlib.h>

#include "context.h"

extern __code code1(struct Context*);
extern __code code2(struct Context*);
extern __code allocate(struct Context*);

__code initContext(struct Context* context) {
    context->dataSize = sizeof(union Data)*ALLOCATE_SIZE;
    context->code = malloc(sizeof(__code*)*ALLOCATE_SIZE);
    context->data = malloc(sizeof(union Data*)*ALLOCATE_SIZE);
    context->heap_start = malloc(context->dataSize);
    context->heap = context->heap_start;

    context->codeNum = 3;
    context->code[Code1]     = code1;
    context->code[Code2]     = code2;
    context->code[Allocator] = allocate;

    context->dataNum = 2;
    context->data[Allocate] = context->heap;
    context->heap += sizeof(struct Allocate);
    context->data[Tree] = context->heap;
    context->heap += sizeof(struct Tree);

    context->root = 0;
    context->current = 0;
}