diff options
author | Adrian Thurston <thurston@colm.net> | 2018-07-09 17:20:54 +0800 |
---|---|---|
committer | Adrian Thurston <thurston@colm.net> | 2018-07-09 17:20:54 +0800 |
commit | a1e92870cc54d3daec9d94b38623167a5a653d9d (patch) | |
tree | da09c12891425e53f9ba07b1bc9cead181fa062c | |
parent | ada8d5f7c5e8f7fd14c40b063db9f85ff253e40e (diff) | |
download | colm-a1e92870cc54d3daec9d94b38623167a5a653d9d.tar.gz |
removed parser from input, initting with input takes pointer to input_t
-rw-r--r-- | src/bytecode.c | 17 | ||||
-rw-r--r-- | src/input.c | 8 | ||||
-rw-r--r-- | src/struct.c | 2 | ||||
-rw-r--r-- | src/struct.h | 4 |
4 files changed, 3 insertions, 28 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index f3457c97..706cc63d 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -969,8 +969,7 @@ again: input_t *to_replace_with = vm_pop_input(); parser_t *parser = vm_pop_parser(); - parser->input->impl = to_replace_with->impl; - parser->input->not_owner = true; + parser->input = to_replace_with; vm_push_parser( parser ); @@ -3309,20 +3308,6 @@ again: vm_push_tree( val ); break; } - case IN_GET_STREAM_MEM_R: { - short field; - read_half( field ); - - debug( prg, REALM_BYTECODE, "IN_GET_PARSER_MEM_R %hd\n", field ); - - input_t *input = vm_pop_input(); - - tree_t *val = get_parser_mem( input->parser, field ); - - colm_tree_upref( prg, val ); - vm_push_tree( val ); - break; - } case IN_GET_MAP_EL_MEM_R: { short gen_id, field; diff --git a/src/input.c b/src/input.c index 8a9bf769..d1a688b1 100644 --- a/src/input.c +++ b/src/input.c @@ -167,18 +167,14 @@ void colm_input_destroy( program_t *prg, tree_t **sp, struct_t *s ) { input_t *input = (input_t*) s; struct input_impl *si = input->impl; - - if ( !input->not_owner ) - si->funcs->destructor( prg, sp, si ); + si->funcs->destructor( prg, sp, si ); } void colm_stream_destroy( program_t *prg, tree_t **sp, struct_t *s ) { stream_t *stream = (stream_t*) s; struct stream_impl *si = stream->impl; - - if ( !stream->not_owner ) - si->funcs->destructor( prg, sp, si ); + si->funcs->destructor( prg, sp, si ); } /* Keep the position up to date after consuming text. */ diff --git a/src/struct.c b/src/struct.c index 62c59923..5ee58ed3 100644 --- a/src/struct.c +++ b/src/struct.c @@ -164,7 +164,6 @@ struct_t *colm_construct_generic( program_t *prg, long generic_id, int stop_id ) case GEN_PARSER: { parser_t *parser = colm_parser_new( prg, generic_info, stop_id, 0 ); parser->input = colm_input_new( prg ); - parser->input->parser = parser; new_generic = (struct_t*) parser; break; } @@ -180,7 +179,6 @@ struct_t *colm_construct_reducer( program_t *prg, long generic_id, int reducer_i parser_t *parser = colm_parser_new( prg, generic_info, 0, reducer_id ); parser->input = colm_input_new( prg ); - parser->input->parser = parser; new_generic = (struct_t*) parser; return new_generic; diff --git a/src/struct.h b/src/struct.h index 47f1fcd7..42710edb 100644 --- a/src/struct.h +++ b/src/struct.h @@ -69,8 +69,6 @@ typedef struct colm_input void *buffer[8]; struct input_impl *impl; - parser_t *parser; - char not_owner; } input_t; /* Must overlay colm_inbuilt. */ @@ -84,8 +82,6 @@ typedef struct colm_stream void *buffer[8]; struct stream_impl *impl; - parser_t *parser; - char not_owner; } stream_t; #define COLM_LIST_EL_SIZE 2 |