diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-08-03 13:41:55 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-08-03 13:48:29 +0900 |
commit | 5931857281ce45c1c277aa86d1588119ab00a955 (patch) | |
tree | 3c2dc33435d53b602b7532e25e3ced7c0dde6dee /vm_eval.c | |
parent | 688a59f8ac984a2f1d4d53005dbe0679dcd59ac3 (diff) | |
download | ruby-5931857281ce45c1c277aa86d1588119ab00a955.tar.gz |
Fix dangling path name from fstring
* parse.y (yycompile): make sure in advance that the `__FILE__`
object shares a fstring, to get rid of dangling path name.
Fixed up 53e9908d8afc7f03109b0aafd1698ab35f512b05. [Bug #16041]
* vm_eval.c (eval_make_iseq): ditto.
Diffstat (limited to 'vm_eval.c')
-rw-r--r-- | vm_eval.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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); |