diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2017-04-12 11:45:05 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2017-04-12 11:45:05 +0300 |
commit | 4b68f4ebe7381644e5652a88a5104a10f10f66a7 (patch) | |
tree | e242d76e4f41cd63466cf044edcc5868b810ccda /awk.h | |
parent | bb25148a8e3c8d953f632eb635669abaccedc9a4 (diff) | |
parent | 906ac1a525dd0f7ad87bafdaf882323938842760 (diff) | |
download | egawk-4b68f4ebe7381644e5652a88a5104a10f10f66a7.tar.gz egawk-4b68f4ebe7381644e5652a88a5104a10f10f66a7.tar.bz2 egawk-4b68f4ebe7381644e5652a88a5104a10f10f66a7.zip |
Merge branch 'master' into feature/api-mpfr
Diffstat (limited to 'awk.h')
-rw-r--r-- | awk.h | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -597,8 +597,7 @@ typedef enum lintvals { /* --------------------------------Instruction ---------------------------------- */ typedef enum opcodeval { - /* illegal entry == 0 */ - Op_illegal, + Op_illegal = 0, /* illegal entry */ /* binary operators */ Op_times, @@ -783,6 +782,7 @@ typedef struct exp_instruction { } x; short source_line; + short pool_size; // memory management in symbol.c OPCODE opcode; } INSTRUCTION; @@ -1031,9 +1031,19 @@ typedef struct srcfile { int lasttok; } SRCFILE; +// structure for INSTRUCTION pool, needed mainly for debugger +typedef struct instruction_pool { +#define MAX_INSTRUCTION_ALLOC 3 // we don't call bcalloc with more than this + struct instruction_mem_pool { + struct instruction_block *block_list; + INSTRUCTION *free_space; // free location in active block + INSTRUCTION *free_list; + } pool[MAX_INSTRUCTION_ALLOC]; +} INSTRUCTION_POOL; + /* structure for execution context */ typedef struct context { - INSTRUCTION pools; + INSTRUCTION_POOL pools; NODE symbols; INSTRUCTION rule_list; SRCFILE srcfiles; |