mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Revert "Revert "Fix dangling path name from fstring""
This reverts commit 326c00b6f8
.
We also confirmed that test_gced_eval_location fails without the changes:
https://travis-ci.org/ruby/ruby/builds/567417818
https://rubyci.org/logs/rubyci.s3.amazonaws.com/arch/ruby-master/log/20190804T000003Z.fail.html.gz
https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu1604/ruby-master/log/20190804T003005Z.fail.html.gz
https://rubyci.org/logs/rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20190804T000007Z.fail.html.gz
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10x/ruby-master/log/20190804T001806Z.fail.html.gz
https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian9/ruby-master/log/20190804T003005Z.fail.html.gz
This commit is contained in:
parent
2d189a6721
commit
a3188f43a8
2 changed files with 4 additions and 3 deletions
4
parse.y
4
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_str_new_frozen(fname);
|
||||
p->ruby_sourcefile_string = rb_fstring(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(rb_fstring(file));
|
||||
file = rb_str_dup(file);
|
||||
node = NEW_STR(add_mark_object(p, file), loc);
|
||||
}
|
||||
return node;
|
||||
|
|
|
@ -1284,6 +1284,7 @@ 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) {
|
||||
|
@ -1293,7 +1294,7 @@ eval_make_iseq(VALUE src, VALUE fname, int line, const rb_binding_t *bind,
|
|||
rb_parser_warn_location(parser, TRUE);
|
||||
}
|
||||
else {
|
||||
fname = rb_usascii_str_new_cstr("(eval)");
|
||||
fname = rb_fstring_lit("(eval)");
|
||||
}
|
||||
|
||||
rb_parser_set_context(parser, base_block, FALSE);
|
||||
|
|
Loading…
Reference in a new issue