diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/ripper/ripper_init.c.tmpl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/ripper/ripper_init.c.tmpl b/ext/ripper/ripper_init.c.tmpl index b2caef2bd5..a2a5e4b4cf 100644 --- a/ext/ripper/ripper_init.c.tmpl +++ b/ext/ripper/ripper_init.c.tmpl @@ -471,11 +471,13 @@ ripper_token(VALUE self) { struct parser_params *p = ripper_parser_params(self, true); long pos, len; + VALUE str; if (NIL_P(rb_ruby_parser_parsing_thread(p))) return Qnil; pos = rb_ruby_ripper_column(p); len = rb_ruby_ripper_token_len(p); - return rb_str_subseq(rb_ruby_ripper_lex_lastline(p), pos, len); + str = rb_str_new_parser_string(rb_ruby_ripper_lex_lastline(p)); + return rb_str_subseq(str, pos, len); } #ifdef RIPPER_DEBUG |
