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:
parent
930a135524
commit
6bef49427a
Notes:
git
2020-11-30 17:33:53 +09:00
4 changed files with 433 additions and 231 deletions
14
ext/-test-/string/rb_interned_str.c
Normal file
14
ext/-test-/string/rb_interned_str.c
Normal 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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue