summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-05-14 06:49:41 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2013-05-14 06:49:41 -0700
commit7cc66cf819beb5398d6fd40711373f9cfe79b77a (patch)
tree1692d5e02a6c4584b5e7cd95696ddebad5bc88fe /src/codegen.c
parent17f10b05f2bb1c70dbc9fee06e16336ed264b098 (diff)
parent87eb57b663fd564d81d59a3d79bae0bcf8ad43e0 (diff)
downloadmruby-7cc66cf819beb5398d6fd40711373f9cfe79b77a.tar.gz
mruby-7cc66cf819beb5398d6fd40711373f9cfe79b77a.zip
Merge pull request #1252 from carsonmcdonald/fixfilenames
Fix for issue 1243
Diffstat (limited to 'src/codegen.c')
-rw-r--r--src/codegen.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/codegen.c b/src/codegen.c
index 38328c669..f4617a570 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -2403,6 +2403,8 @@ scope_finish(codegen_scope *s)
{
mrb_state *mrb = s->mrb;
mrb_irep *irep = s->irep;
+ size_t fname_len;
+ char *fname;
irep->flags = 0;
if (s->iseq) {
@@ -2418,7 +2420,11 @@ scope_finish(codegen_scope *s)
irep->pool = (mrb_value *)codegen_realloc(s, irep->pool, sizeof(mrb_value)*irep->plen);
irep->syms = (mrb_sym *)codegen_realloc(s, irep->syms, sizeof(mrb_sym)*irep->slen);
if (s->filename) {
- irep->filename = s->filename;
+ fname_len = strlen(s->filename);
+ fname = codegen_malloc(s, fname_len + 1);
+ memcpy(fname, s->filename, fname_len);
+ fname[fname_len] = '\0';
+ irep->filename = fname;
}
irep->nlocals = s->nlocals;