annotate final_pre/src/initLLRBContext.c @ 7:28f900230c26

add final_pre
author ryokka
date Mon, 19 Feb 2018 23:32:24 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
28f900230c26 add final_pre
ryokka
parents:
diff changeset
1 __code initLLRBContext(struct Context* context, int num) {
28f900230c26 add final_pre
ryokka
parents:
diff changeset
2 context->heapLimit = sizeof(union Data)*ALLOCATE_SIZE;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
3 context->code = malloc(sizeof(__code*)*ALLOCATE_SIZE);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
4 context->data = malloc(sizeof(union Data*)*ALLOCATE_SIZE);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
5 context->heapStart = malloc(context->heapLimit);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
6
28f900230c26 add final_pre
ryokka
parents:
diff changeset
7 context->codeNum = Exit;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
8
28f900230c26 add final_pre
ryokka
parents:
diff changeset
9 context->code[Code1] = code1_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
10 context->code[Code2] = code2_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
11 context->code[Code3] = code3_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
12 context->code[Code4] = code4;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
13 context->code[Code5] = code5;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
14 context->code[Find] = find;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
15 context->code[Not_find] = not_find;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
16 context->code[Code6] = code6;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
17 context->code[Put] = put_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
18 context->code[Replace] = replaceNode_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
19 context->code[Insert] = insertNode_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
20 context->code[RotateL] = rotateLeft_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
21 context->code[RotateR] = rotateRight_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
22 context->code[InsertCase1] = insert1_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
23 context->code[InsertCase2] = insert2_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
24 context->code[InsertCase3] = insert3_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
25 context->code[InsertCase4] = insert4_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
26 context->code[InsertCase4_1] = insert4_1_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
27 context->code[InsertCase4_2] = insert4_2_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
28 context->code[InsertCase5] = insert5_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
29 context->code[StackClear] = stackClear_stub;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
30 context->code[Exit] = exit_code;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
31
28f900230c26 add final_pre
ryokka
parents:
diff changeset
32 context->heap = context->heapStart;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
33
28f900230c26 add final_pre
ryokka
parents:
diff changeset
34 context->data[Allocate] = context->heap;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
35 context->heap += sizeof(struct Allocate);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
36
28f900230c26 add final_pre
ryokka
parents:
diff changeset
37 context->data[Tree] = context->heap;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
38 context->heap += sizeof(struct Tree);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
39
28f900230c26 add final_pre
ryokka
parents:
diff changeset
40 context->data[Node] = context->heap;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
41 context->heap += sizeof(struct Node);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
42
28f900230c26 add final_pre
ryokka
parents:
diff changeset
43 context->dataNum = Node;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
44
28f900230c26 add final_pre
ryokka
parents:
diff changeset
45 struct Tree* tree = &context->data[Tree]->tree;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
46 tree->root = 0;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
47 tree->current = 0;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
48 tree->deleted = 0;
28f900230c26 add final_pre
ryokka
parents:
diff changeset
49
28f900230c26 add final_pre
ryokka
parents:
diff changeset
50 context->node_stack = stack_init(sizeof(struct Node*), 100);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
51 context->code_stack = stack_init(sizeof(enum Code), 100);
28f900230c26 add final_pre
ryokka
parents:
diff changeset
52 }
28f900230c26 add final_pre
ryokka
parents:
diff changeset
53