diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-09-08 01:20:43 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-09-08 01:20:43 +0900 |
| commit | 89e9df26819b9555fb790a16662f4ad2b9cbb2e2 (patch) | |
| tree | 22aab88afbb6e0a861d5f496c4efc23b205f4cfe | |
| parent | cc98f191fad94409fa4a6edef0c788fb45c82587 (diff) | |
| download | mruby-89e9df26819b9555fb790a16662f4ad2b9cbb2e2.tar.gz mruby-89e9df26819b9555fb790a16662f4ad2b9cbb2e2.zip | |
fixed wandering filename problem
| -rw-r--r-- | src/codegen.c | 2 | ||||
| -rw-r--r-- | src/parse.y | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/codegen.c b/src/codegen.c index e6f277b1b..d749e5355 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1157,7 +1157,7 @@ codegen(codegen_scope *s, node *tree, int val) if (!tree) return; - if (s->irep && s->pc > 0 && s->filename_index != tree->filename_index) { + if (s->irep && s->filename_index != tree->filename_index) { s->irep->filename = mrb_parser_get_filename(s->parser, s->filename_index); mrb_debug_info_append_file(s->mrb, s->irep, s->debug_start_pos, s->pc); s->debug_start_pos = s->pc; diff --git a/src/parse.y b/src/parse.y index e77085332..00d784d81 100644 --- a/src/parse.y +++ b/src/parse.y @@ -62,7 +62,12 @@ typedef unsigned int stack_type; #define CMDARG_P() BITSTACK_SET_P(p->cmdarg_stack) #define SET_LINENO(c,n) ((c)->lineno = (n)) -#define NODE_LINENO(c,n) do {if (n) ((c)->lineno = (n)->lineno);} while (0) +#define NODE_LINENO(c,n) do {\ + if (n) {\ + (c)->filename_index = (n)->filename_index;\ + (c)->lineno = (n)->lineno;\ + }\ +} while (0) #define sym(x) ((mrb_sym)(intptr_t)(x)) #define nsym(x) ((node*)(intptr_t)(x)) |
