aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parse.y4
-rw-r--r--vm_eval.c3
2 files changed, 3 insertions, 4 deletions
diff --git a/parse.y b/parse.y
index de2a92285c..3bff42ac56 100644
--- a/parse.y
+++ b/parse.y
@@ -5812,7 +5812,7 @@ yycompile(VALUE vparser, struct parser_params *p, VALUE fname, int line)
p->ruby_sourcefile = "(none)";
}
else {
- p->ruby_sourcefile_string = rb_fstring(fname);
+ p->ruby_sourcefile_string = rb_str_new_frozen(fname);
p->ruby_sourcefile = StringValueCStr(fname);
}
p->ruby_sourceline = line - 1;
@@ -9773,7 +9773,7 @@ gettable(struct parser_params *p, ID id, const YYLTYPE *loc)
if (NIL_P(file))
file = rb_str_new(0, 0);
else
- file = rb_str_dup(file);
+ file = rb_str_dup(rb_fstring(file));
node = NEW_STR(add_mark_object(p, file), loc);
}
return node;
diff --git a/vm_eval.c b/vm_eval.c
index 222389ec08..eb728c0e7f 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -1284,7 +1284,6 @@ eval_make_iseq(VALUE src, VALUE fname, int line, const rb_binding_t *bind,
}
if (fname != Qundef) {
- if (!NIL_P(fname)) fname = rb_fstring(fname);
realpath = fname;
}
else if (bind) {
@@ -1294,7 +1293,7 @@ eval_make_iseq(VALUE src, VALUE fname, int line, const rb_binding_t *bind,
rb_parser_warn_location(parser, TRUE);
}
else {
- fname = rb_fstring_lit("(eval)");
+ fname = rb_usascii_str_new_cstr("(eval)");
}
rb_parser_set_context(parser, base_block, FALSE);