1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Fix rb_interned_str_* functions to not assume static strings

Fixes [Feature #13381]

When passed a `fake_str`, `register_fstring` would create new strings
with `str_new_static`. That's not what was expected, and answer
almost no use cases.
This commit is contained in:
Jean Boussier 2020-11-18 13:57:01 +01:00 committed by Nobuyoshi Nakada
parent 930a135524
commit 6bef49427a
Notes: git 2020-11-30 17:33:53 +09:00
4 changed files with 433 additions and 231 deletions

View file

@ -0,0 +1,14 @@
#include "ruby.h"
static VALUE
bug_rb_interned_str_dup(VALUE self, VALUE str)
{
Check_Type(str, T_STRING);
return rb_interned_str(RSTRING_PTR(str), RSTRING_LEN(str));
}
void
Init_string_rb_interned_str(VALUE klass)
{
rb_define_singleton_method(klass, "rb_interned_str_dup", bug_rb_interned_str_dup, 1);
}