summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-08-31 15:58:33 +0900
committerYukihiro Matsumoto <[email protected]>2012-08-31 15:58:33 +0900
commitf114916610a8cd16dd9fe6d5ebca9d5a8868b04c (patch)
tree7340c75bb41b7ae3af26289d57041f33c461a061 /src/codegen.c
parent3e924e887fb2e9e2123f8002879ef81e597d08b9 (diff)
downloadmruby-f114916610a8cd16dd9fe6d5ebca9d5a8868b04c.tar.gz
mruby-f114916610a8cd16dd9fe6d5ebca9d5a8868b04c.zip
source position added to exception representation
Diffstat (limited to 'src/codegen.c')
-rw-r--r--src/codegen.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/codegen.c b/src/codegen.c
index 6197da33e..6dcc747c3 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -2074,6 +2074,9 @@ scope_finish(codegen_scope *s, int idx)
irep->syms = (mrb_sym *)codegen_realloc(s, s->syms, sizeof(mrb_sym)*s->slen);
irep->slen = s->slen;
}
+ if (s->filename) {
+ irep->filename = s->filename;
+ }
irep->nlocals = s->nlocals;
irep->nregs = s->nregs;
@@ -2479,12 +2482,12 @@ codegen_start(mrb_state *mrb, parser_state *p)
scope->filename = s;
}
if (setjmp(scope->jmp) != 0) {
- if (scope->filename) mrb_free(mrb, scope->filename);
+ //if (scope->filename) mrb_free(mrb, scope->filename);
return -1;
}
// prepare irep
codegen(scope, p->tree, NOVAL);
- if (scope->filename) mrb_free(mrb, scope->filename);
+ // if (scope->filename) mrb_free(mrb, scope->filename);
mrb_pool_close(scope->mpool);
return 0;
}