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

@ -2,6 +2,20 @@
capacity.o: $(RUBY_EXTCONF_H)
capacity.o: $(arch_hdrdir)/ruby/config.h
capacity.o: $(hdrdir)/ruby.h
capacity.o: $(hdrdir)/ruby/assert.h
capacity.o: $(hdrdir)/ruby/backward.h
capacity.o: $(hdrdir)/ruby/backward/2/assume.h
capacity.o: $(hdrdir)/ruby/backward/2/attributes.h
capacity.o: $(hdrdir)/ruby/backward/2/bool.h
capacity.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
capacity.o: $(hdrdir)/ruby/backward/2/inttypes.h
capacity.o: $(hdrdir)/ruby/backward/2/limits.h
capacity.o: $(hdrdir)/ruby/backward/2/long_long.h
capacity.o: $(hdrdir)/ruby/backward/2/stdalign.h
capacity.o: $(hdrdir)/ruby/backward/2/stdarg.h
capacity.o: $(hdrdir)/ruby/defines.h
capacity.o: $(hdrdir)/ruby/encoding.h
capacity.o: $(hdrdir)/ruby/intern.h
capacity.o: $(hdrdir)/ruby/internal/anyargs.h
capacity.o: $(hdrdir)/ruby/internal/arithmetic.h
capacity.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -142,20 +156,6 @@ capacity.o: $(hdrdir)/ruby/internal/value_type.h
capacity.o: $(hdrdir)/ruby/internal/variable.h
capacity.o: $(hdrdir)/ruby/internal/warning_push.h
capacity.o: $(hdrdir)/ruby/internal/xmalloc.h
capacity.o: $(hdrdir)/ruby/assert.h
capacity.o: $(hdrdir)/ruby/backward.h
capacity.o: $(hdrdir)/ruby/backward/2/assume.h
capacity.o: $(hdrdir)/ruby/backward/2/attributes.h
capacity.o: $(hdrdir)/ruby/backward/2/bool.h
capacity.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
capacity.o: $(hdrdir)/ruby/backward/2/inttypes.h
capacity.o: $(hdrdir)/ruby/backward/2/limits.h
capacity.o: $(hdrdir)/ruby/backward/2/long_long.h
capacity.o: $(hdrdir)/ruby/backward/2/stdalign.h
capacity.o: $(hdrdir)/ruby/backward/2/stdarg.h
capacity.o: $(hdrdir)/ruby/defines.h
capacity.o: $(hdrdir)/ruby/encoding.h
capacity.o: $(hdrdir)/ruby/intern.h
capacity.o: $(hdrdir)/ruby/missing.h
capacity.o: $(hdrdir)/ruby/onigmo.h
capacity.o: $(hdrdir)/ruby/oniguruma.h
@ -168,6 +168,20 @@ capacity.o: $(top_srcdir)/internal/string.h
capacity.o: capacity.c
coderange.o: $(RUBY_EXTCONF_H)
coderange.o: $(arch_hdrdir)/ruby/config.h
coderange.o: $(hdrdir)/ruby/assert.h
coderange.o: $(hdrdir)/ruby/backward.h
coderange.o: $(hdrdir)/ruby/backward/2/assume.h
coderange.o: $(hdrdir)/ruby/backward/2/attributes.h
coderange.o: $(hdrdir)/ruby/backward/2/bool.h
coderange.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
coderange.o: $(hdrdir)/ruby/backward/2/inttypes.h
coderange.o: $(hdrdir)/ruby/backward/2/limits.h
coderange.o: $(hdrdir)/ruby/backward/2/long_long.h
coderange.o: $(hdrdir)/ruby/backward/2/stdalign.h
coderange.o: $(hdrdir)/ruby/backward/2/stdarg.h
coderange.o: $(hdrdir)/ruby/defines.h
coderange.o: $(hdrdir)/ruby/encoding.h
coderange.o: $(hdrdir)/ruby/intern.h
coderange.o: $(hdrdir)/ruby/internal/anyargs.h
coderange.o: $(hdrdir)/ruby/internal/arithmetic.h
coderange.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -308,20 +322,6 @@ coderange.o: $(hdrdir)/ruby/internal/value_type.h
coderange.o: $(hdrdir)/ruby/internal/variable.h
coderange.o: $(hdrdir)/ruby/internal/warning_push.h
coderange.o: $(hdrdir)/ruby/internal/xmalloc.h
coderange.o: $(hdrdir)/ruby/assert.h
coderange.o: $(hdrdir)/ruby/backward.h
coderange.o: $(hdrdir)/ruby/backward/2/assume.h
coderange.o: $(hdrdir)/ruby/backward/2/attributes.h
coderange.o: $(hdrdir)/ruby/backward/2/bool.h
coderange.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
coderange.o: $(hdrdir)/ruby/backward/2/inttypes.h
coderange.o: $(hdrdir)/ruby/backward/2/limits.h
coderange.o: $(hdrdir)/ruby/backward/2/long_long.h
coderange.o: $(hdrdir)/ruby/backward/2/stdalign.h
coderange.o: $(hdrdir)/ruby/backward/2/stdarg.h
coderange.o: $(hdrdir)/ruby/defines.h
coderange.o: $(hdrdir)/ruby/encoding.h
coderange.o: $(hdrdir)/ruby/intern.h
coderange.o: $(hdrdir)/ruby/missing.h
coderange.o: $(hdrdir)/ruby/onigmo.h
coderange.o: $(hdrdir)/ruby/oniguruma.h
@ -332,6 +332,20 @@ coderange.o: coderange.c
cstr.o: $(RUBY_EXTCONF_H)
cstr.o: $(arch_hdrdir)/ruby/config.h
cstr.o: $(hdrdir)/ruby.h
cstr.o: $(hdrdir)/ruby/assert.h
cstr.o: $(hdrdir)/ruby/backward.h
cstr.o: $(hdrdir)/ruby/backward/2/assume.h
cstr.o: $(hdrdir)/ruby/backward/2/attributes.h
cstr.o: $(hdrdir)/ruby/backward/2/bool.h
cstr.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
cstr.o: $(hdrdir)/ruby/backward/2/inttypes.h
cstr.o: $(hdrdir)/ruby/backward/2/limits.h
cstr.o: $(hdrdir)/ruby/backward/2/long_long.h
cstr.o: $(hdrdir)/ruby/backward/2/stdalign.h
cstr.o: $(hdrdir)/ruby/backward/2/stdarg.h
cstr.o: $(hdrdir)/ruby/defines.h
cstr.o: $(hdrdir)/ruby/encoding.h
cstr.o: $(hdrdir)/ruby/intern.h
cstr.o: $(hdrdir)/ruby/internal/anyargs.h
cstr.o: $(hdrdir)/ruby/internal/arithmetic.h
cstr.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -472,20 +486,6 @@ cstr.o: $(hdrdir)/ruby/internal/value_type.h
cstr.o: $(hdrdir)/ruby/internal/variable.h
cstr.o: $(hdrdir)/ruby/internal/warning_push.h
cstr.o: $(hdrdir)/ruby/internal/xmalloc.h
cstr.o: $(hdrdir)/ruby/assert.h
cstr.o: $(hdrdir)/ruby/backward.h
cstr.o: $(hdrdir)/ruby/backward/2/assume.h
cstr.o: $(hdrdir)/ruby/backward/2/attributes.h
cstr.o: $(hdrdir)/ruby/backward/2/bool.h
cstr.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
cstr.o: $(hdrdir)/ruby/backward/2/inttypes.h
cstr.o: $(hdrdir)/ruby/backward/2/limits.h
cstr.o: $(hdrdir)/ruby/backward/2/long_long.h
cstr.o: $(hdrdir)/ruby/backward/2/stdalign.h
cstr.o: $(hdrdir)/ruby/backward/2/stdarg.h
cstr.o: $(hdrdir)/ruby/defines.h
cstr.o: $(hdrdir)/ruby/encoding.h
cstr.o: $(hdrdir)/ruby/intern.h
cstr.o: $(hdrdir)/ruby/missing.h
cstr.o: $(hdrdir)/ruby/onigmo.h
cstr.o: $(hdrdir)/ruby/oniguruma.h
@ -500,6 +500,19 @@ cstr.o: cstr.c
ellipsize.o: $(RUBY_EXTCONF_H)
ellipsize.o: $(arch_hdrdir)/ruby/config.h
ellipsize.o: $(hdrdir)/ruby.h
ellipsize.o: $(hdrdir)/ruby/assert.h
ellipsize.o: $(hdrdir)/ruby/backward.h
ellipsize.o: $(hdrdir)/ruby/backward/2/assume.h
ellipsize.o: $(hdrdir)/ruby/backward/2/attributes.h
ellipsize.o: $(hdrdir)/ruby/backward/2/bool.h
ellipsize.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
ellipsize.o: $(hdrdir)/ruby/backward/2/inttypes.h
ellipsize.o: $(hdrdir)/ruby/backward/2/limits.h
ellipsize.o: $(hdrdir)/ruby/backward/2/long_long.h
ellipsize.o: $(hdrdir)/ruby/backward/2/stdalign.h
ellipsize.o: $(hdrdir)/ruby/backward/2/stdarg.h
ellipsize.o: $(hdrdir)/ruby/defines.h
ellipsize.o: $(hdrdir)/ruby/intern.h
ellipsize.o: $(hdrdir)/ruby/internal/anyargs.h
ellipsize.o: $(hdrdir)/ruby/internal/arithmetic.h
ellipsize.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -640,19 +653,6 @@ ellipsize.o: $(hdrdir)/ruby/internal/value_type.h
ellipsize.o: $(hdrdir)/ruby/internal/variable.h
ellipsize.o: $(hdrdir)/ruby/internal/warning_push.h
ellipsize.o: $(hdrdir)/ruby/internal/xmalloc.h
ellipsize.o: $(hdrdir)/ruby/assert.h
ellipsize.o: $(hdrdir)/ruby/backward.h
ellipsize.o: $(hdrdir)/ruby/backward/2/assume.h
ellipsize.o: $(hdrdir)/ruby/backward/2/attributes.h
ellipsize.o: $(hdrdir)/ruby/backward/2/bool.h
ellipsize.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
ellipsize.o: $(hdrdir)/ruby/backward/2/inttypes.h
ellipsize.o: $(hdrdir)/ruby/backward/2/limits.h
ellipsize.o: $(hdrdir)/ruby/backward/2/long_long.h
ellipsize.o: $(hdrdir)/ruby/backward/2/stdalign.h
ellipsize.o: $(hdrdir)/ruby/backward/2/stdarg.h
ellipsize.o: $(hdrdir)/ruby/defines.h
ellipsize.o: $(hdrdir)/ruby/intern.h
ellipsize.o: $(hdrdir)/ruby/missing.h
ellipsize.o: $(hdrdir)/ruby/ruby.h
ellipsize.o: $(hdrdir)/ruby/st.h
@ -661,6 +661,20 @@ ellipsize.o: ellipsize.c
enc_associate.o: $(RUBY_EXTCONF_H)
enc_associate.o: $(arch_hdrdir)/ruby/config.h
enc_associate.o: $(hdrdir)/ruby.h
enc_associate.o: $(hdrdir)/ruby/assert.h
enc_associate.o: $(hdrdir)/ruby/backward.h
enc_associate.o: $(hdrdir)/ruby/backward/2/assume.h
enc_associate.o: $(hdrdir)/ruby/backward/2/attributes.h
enc_associate.o: $(hdrdir)/ruby/backward/2/bool.h
enc_associate.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
enc_associate.o: $(hdrdir)/ruby/backward/2/inttypes.h
enc_associate.o: $(hdrdir)/ruby/backward/2/limits.h
enc_associate.o: $(hdrdir)/ruby/backward/2/long_long.h
enc_associate.o: $(hdrdir)/ruby/backward/2/stdalign.h
enc_associate.o: $(hdrdir)/ruby/backward/2/stdarg.h
enc_associate.o: $(hdrdir)/ruby/defines.h
enc_associate.o: $(hdrdir)/ruby/encoding.h
enc_associate.o: $(hdrdir)/ruby/intern.h
enc_associate.o: $(hdrdir)/ruby/internal/anyargs.h
enc_associate.o: $(hdrdir)/ruby/internal/arithmetic.h
enc_associate.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -801,20 +815,6 @@ enc_associate.o: $(hdrdir)/ruby/internal/value_type.h
enc_associate.o: $(hdrdir)/ruby/internal/variable.h
enc_associate.o: $(hdrdir)/ruby/internal/warning_push.h
enc_associate.o: $(hdrdir)/ruby/internal/xmalloc.h
enc_associate.o: $(hdrdir)/ruby/assert.h
enc_associate.o: $(hdrdir)/ruby/backward.h
enc_associate.o: $(hdrdir)/ruby/backward/2/assume.h
enc_associate.o: $(hdrdir)/ruby/backward/2/attributes.h
enc_associate.o: $(hdrdir)/ruby/backward/2/bool.h
enc_associate.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
enc_associate.o: $(hdrdir)/ruby/backward/2/inttypes.h
enc_associate.o: $(hdrdir)/ruby/backward/2/limits.h
enc_associate.o: $(hdrdir)/ruby/backward/2/long_long.h
enc_associate.o: $(hdrdir)/ruby/backward/2/stdalign.h
enc_associate.o: $(hdrdir)/ruby/backward/2/stdarg.h
enc_associate.o: $(hdrdir)/ruby/defines.h
enc_associate.o: $(hdrdir)/ruby/encoding.h
enc_associate.o: $(hdrdir)/ruby/intern.h
enc_associate.o: $(hdrdir)/ruby/missing.h
enc_associate.o: $(hdrdir)/ruby/onigmo.h
enc_associate.o: $(hdrdir)/ruby/oniguruma.h
@ -824,6 +824,20 @@ enc_associate.o: $(hdrdir)/ruby/subst.h
enc_associate.o: enc_associate.c
enc_str_buf_cat.o: $(RUBY_EXTCONF_H)
enc_str_buf_cat.o: $(arch_hdrdir)/ruby/config.h
enc_str_buf_cat.o: $(hdrdir)/ruby/assert.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/assume.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/attributes.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/bool.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/inttypes.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/limits.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/long_long.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/stdalign.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/stdarg.h
enc_str_buf_cat.o: $(hdrdir)/ruby/defines.h
enc_str_buf_cat.o: $(hdrdir)/ruby/encoding.h
enc_str_buf_cat.o: $(hdrdir)/ruby/intern.h
enc_str_buf_cat.o: $(hdrdir)/ruby/internal/anyargs.h
enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic.h
enc_str_buf_cat.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -964,20 +978,6 @@ enc_str_buf_cat.o: $(hdrdir)/ruby/internal/value_type.h
enc_str_buf_cat.o: $(hdrdir)/ruby/internal/variable.h
enc_str_buf_cat.o: $(hdrdir)/ruby/internal/warning_push.h
enc_str_buf_cat.o: $(hdrdir)/ruby/internal/xmalloc.h
enc_str_buf_cat.o: $(hdrdir)/ruby/assert.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/assume.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/attributes.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/bool.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/inttypes.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/limits.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/long_long.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/stdalign.h
enc_str_buf_cat.o: $(hdrdir)/ruby/backward/2/stdarg.h
enc_str_buf_cat.o: $(hdrdir)/ruby/defines.h
enc_str_buf_cat.o: $(hdrdir)/ruby/encoding.h
enc_str_buf_cat.o: $(hdrdir)/ruby/intern.h
enc_str_buf_cat.o: $(hdrdir)/ruby/missing.h
enc_str_buf_cat.o: $(hdrdir)/ruby/onigmo.h
enc_str_buf_cat.o: $(hdrdir)/ruby/oniguruma.h
@ -988,6 +988,19 @@ enc_str_buf_cat.o: enc_str_buf_cat.c
fstring.o: $(RUBY_EXTCONF_H)
fstring.o: $(arch_hdrdir)/ruby/config.h
fstring.o: $(hdrdir)/ruby.h
fstring.o: $(hdrdir)/ruby/assert.h
fstring.o: $(hdrdir)/ruby/backward.h
fstring.o: $(hdrdir)/ruby/backward/2/assume.h
fstring.o: $(hdrdir)/ruby/backward/2/attributes.h
fstring.o: $(hdrdir)/ruby/backward/2/bool.h
fstring.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
fstring.o: $(hdrdir)/ruby/backward/2/inttypes.h
fstring.o: $(hdrdir)/ruby/backward/2/limits.h
fstring.o: $(hdrdir)/ruby/backward/2/long_long.h
fstring.o: $(hdrdir)/ruby/backward/2/stdalign.h
fstring.o: $(hdrdir)/ruby/backward/2/stdarg.h
fstring.o: $(hdrdir)/ruby/defines.h
fstring.o: $(hdrdir)/ruby/intern.h
fstring.o: $(hdrdir)/ruby/internal/anyargs.h
fstring.o: $(hdrdir)/ruby/internal/arithmetic.h
fstring.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -1128,19 +1141,6 @@ fstring.o: $(hdrdir)/ruby/internal/value_type.h
fstring.o: $(hdrdir)/ruby/internal/variable.h
fstring.o: $(hdrdir)/ruby/internal/warning_push.h
fstring.o: $(hdrdir)/ruby/internal/xmalloc.h
fstring.o: $(hdrdir)/ruby/assert.h
fstring.o: $(hdrdir)/ruby/backward.h
fstring.o: $(hdrdir)/ruby/backward/2/assume.h
fstring.o: $(hdrdir)/ruby/backward/2/attributes.h
fstring.o: $(hdrdir)/ruby/backward/2/bool.h
fstring.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
fstring.o: $(hdrdir)/ruby/backward/2/inttypes.h
fstring.o: $(hdrdir)/ruby/backward/2/limits.h
fstring.o: $(hdrdir)/ruby/backward/2/long_long.h
fstring.o: $(hdrdir)/ruby/backward/2/stdalign.h
fstring.o: $(hdrdir)/ruby/backward/2/stdarg.h
fstring.o: $(hdrdir)/ruby/defines.h
fstring.o: $(hdrdir)/ruby/intern.h
fstring.o: $(hdrdir)/ruby/missing.h
fstring.o: $(hdrdir)/ruby/ruby.h
fstring.o: $(hdrdir)/ruby/st.h
@ -1149,6 +1149,19 @@ fstring.o: fstring.c
init.o: $(RUBY_EXTCONF_H)
init.o: $(arch_hdrdir)/ruby/config.h
init.o: $(hdrdir)/ruby.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
init.o: $(hdrdir)/ruby/backward/2/assume.h
init.o: $(hdrdir)/ruby/backward/2/attributes.h
init.o: $(hdrdir)/ruby/backward/2/bool.h
init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
init.o: $(hdrdir)/ruby/backward/2/inttypes.h
init.o: $(hdrdir)/ruby/backward/2/limits.h
init.o: $(hdrdir)/ruby/backward/2/long_long.h
init.o: $(hdrdir)/ruby/backward/2/stdalign.h
init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/internal/anyargs.h
init.o: $(hdrdir)/ruby/internal/arithmetic.h
init.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -1289,19 +1302,6 @@ init.o: $(hdrdir)/ruby/internal/value_type.h
init.o: $(hdrdir)/ruby/internal/variable.h
init.o: $(hdrdir)/ruby/internal/warning_push.h
init.o: $(hdrdir)/ruby/internal/xmalloc.h
init.o: $(hdrdir)/ruby/assert.h
init.o: $(hdrdir)/ruby/backward.h
init.o: $(hdrdir)/ruby/backward/2/assume.h
init.o: $(hdrdir)/ruby/backward/2/attributes.h
init.o: $(hdrdir)/ruby/backward/2/bool.h
init.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
init.o: $(hdrdir)/ruby/backward/2/inttypes.h
init.o: $(hdrdir)/ruby/backward/2/limits.h
init.o: $(hdrdir)/ruby/backward/2/long_long.h
init.o: $(hdrdir)/ruby/backward/2/stdalign.h
init.o: $(hdrdir)/ruby/backward/2/stdarg.h
init.o: $(hdrdir)/ruby/defines.h
init.o: $(hdrdir)/ruby/intern.h
init.o: $(hdrdir)/ruby/missing.h
init.o: $(hdrdir)/ruby/ruby.h
init.o: $(hdrdir)/ruby/st.h
@ -1310,6 +1310,19 @@ init.o: init.c
modify.o: $(RUBY_EXTCONF_H)
modify.o: $(arch_hdrdir)/ruby/config.h
modify.o: $(hdrdir)/ruby.h
modify.o: $(hdrdir)/ruby/assert.h
modify.o: $(hdrdir)/ruby/backward.h
modify.o: $(hdrdir)/ruby/backward/2/assume.h
modify.o: $(hdrdir)/ruby/backward/2/attributes.h
modify.o: $(hdrdir)/ruby/backward/2/bool.h
modify.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
modify.o: $(hdrdir)/ruby/backward/2/inttypes.h
modify.o: $(hdrdir)/ruby/backward/2/limits.h
modify.o: $(hdrdir)/ruby/backward/2/long_long.h
modify.o: $(hdrdir)/ruby/backward/2/stdalign.h
modify.o: $(hdrdir)/ruby/backward/2/stdarg.h
modify.o: $(hdrdir)/ruby/defines.h
modify.o: $(hdrdir)/ruby/intern.h
modify.o: $(hdrdir)/ruby/internal/anyargs.h
modify.o: $(hdrdir)/ruby/internal/arithmetic.h
modify.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -1450,19 +1463,6 @@ modify.o: $(hdrdir)/ruby/internal/value_type.h
modify.o: $(hdrdir)/ruby/internal/variable.h
modify.o: $(hdrdir)/ruby/internal/warning_push.h
modify.o: $(hdrdir)/ruby/internal/xmalloc.h
modify.o: $(hdrdir)/ruby/assert.h
modify.o: $(hdrdir)/ruby/backward.h
modify.o: $(hdrdir)/ruby/backward/2/assume.h
modify.o: $(hdrdir)/ruby/backward/2/attributes.h
modify.o: $(hdrdir)/ruby/backward/2/bool.h
modify.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
modify.o: $(hdrdir)/ruby/backward/2/inttypes.h
modify.o: $(hdrdir)/ruby/backward/2/limits.h
modify.o: $(hdrdir)/ruby/backward/2/long_long.h
modify.o: $(hdrdir)/ruby/backward/2/stdalign.h
modify.o: $(hdrdir)/ruby/backward/2/stdarg.h
modify.o: $(hdrdir)/ruby/defines.h
modify.o: $(hdrdir)/ruby/intern.h
modify.o: $(hdrdir)/ruby/missing.h
modify.o: $(hdrdir)/ruby/ruby.h
modify.o: $(hdrdir)/ruby/st.h
@ -1471,6 +1471,20 @@ modify.o: modify.c
new.o: $(RUBY_EXTCONF_H)
new.o: $(arch_hdrdir)/ruby/config.h
new.o: $(hdrdir)/ruby.h
new.o: $(hdrdir)/ruby/assert.h
new.o: $(hdrdir)/ruby/backward.h
new.o: $(hdrdir)/ruby/backward/2/assume.h
new.o: $(hdrdir)/ruby/backward/2/attributes.h
new.o: $(hdrdir)/ruby/backward/2/bool.h
new.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
new.o: $(hdrdir)/ruby/backward/2/inttypes.h
new.o: $(hdrdir)/ruby/backward/2/limits.h
new.o: $(hdrdir)/ruby/backward/2/long_long.h
new.o: $(hdrdir)/ruby/backward/2/stdalign.h
new.o: $(hdrdir)/ruby/backward/2/stdarg.h
new.o: $(hdrdir)/ruby/defines.h
new.o: $(hdrdir)/ruby/encoding.h
new.o: $(hdrdir)/ruby/intern.h
new.o: $(hdrdir)/ruby/internal/anyargs.h
new.o: $(hdrdir)/ruby/internal/arithmetic.h
new.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -1611,20 +1625,6 @@ new.o: $(hdrdir)/ruby/internal/value_type.h
new.o: $(hdrdir)/ruby/internal/variable.h
new.o: $(hdrdir)/ruby/internal/warning_push.h
new.o: $(hdrdir)/ruby/internal/xmalloc.h
new.o: $(hdrdir)/ruby/assert.h
new.o: $(hdrdir)/ruby/backward.h
new.o: $(hdrdir)/ruby/backward/2/assume.h
new.o: $(hdrdir)/ruby/backward/2/attributes.h
new.o: $(hdrdir)/ruby/backward/2/bool.h
new.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
new.o: $(hdrdir)/ruby/backward/2/inttypes.h
new.o: $(hdrdir)/ruby/backward/2/limits.h
new.o: $(hdrdir)/ruby/backward/2/long_long.h
new.o: $(hdrdir)/ruby/backward/2/stdalign.h
new.o: $(hdrdir)/ruby/backward/2/stdarg.h
new.o: $(hdrdir)/ruby/defines.h
new.o: $(hdrdir)/ruby/encoding.h
new.o: $(hdrdir)/ruby/intern.h
new.o: $(hdrdir)/ruby/missing.h
new.o: $(hdrdir)/ruby/onigmo.h
new.o: $(hdrdir)/ruby/oniguruma.h
@ -1635,6 +1635,19 @@ new.o: new.c
nofree.o: $(RUBY_EXTCONF_H)
nofree.o: $(arch_hdrdir)/ruby/config.h
nofree.o: $(hdrdir)/ruby.h
nofree.o: $(hdrdir)/ruby/assert.h
nofree.o: $(hdrdir)/ruby/backward.h
nofree.o: $(hdrdir)/ruby/backward/2/assume.h
nofree.o: $(hdrdir)/ruby/backward/2/attributes.h
nofree.o: $(hdrdir)/ruby/backward/2/bool.h
nofree.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
nofree.o: $(hdrdir)/ruby/backward/2/inttypes.h
nofree.o: $(hdrdir)/ruby/backward/2/limits.h
nofree.o: $(hdrdir)/ruby/backward/2/long_long.h
nofree.o: $(hdrdir)/ruby/backward/2/stdalign.h
nofree.o: $(hdrdir)/ruby/backward/2/stdarg.h
nofree.o: $(hdrdir)/ruby/defines.h
nofree.o: $(hdrdir)/ruby/intern.h
nofree.o: $(hdrdir)/ruby/internal/anyargs.h
nofree.o: $(hdrdir)/ruby/internal/arithmetic.h
nofree.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -1775,19 +1788,6 @@ nofree.o: $(hdrdir)/ruby/internal/value_type.h
nofree.o: $(hdrdir)/ruby/internal/variable.h
nofree.o: $(hdrdir)/ruby/internal/warning_push.h
nofree.o: $(hdrdir)/ruby/internal/xmalloc.h
nofree.o: $(hdrdir)/ruby/assert.h
nofree.o: $(hdrdir)/ruby/backward.h
nofree.o: $(hdrdir)/ruby/backward/2/assume.h
nofree.o: $(hdrdir)/ruby/backward/2/attributes.h
nofree.o: $(hdrdir)/ruby/backward/2/bool.h
nofree.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
nofree.o: $(hdrdir)/ruby/backward/2/inttypes.h
nofree.o: $(hdrdir)/ruby/backward/2/limits.h
nofree.o: $(hdrdir)/ruby/backward/2/long_long.h
nofree.o: $(hdrdir)/ruby/backward/2/stdalign.h
nofree.o: $(hdrdir)/ruby/backward/2/stdarg.h
nofree.o: $(hdrdir)/ruby/defines.h
nofree.o: $(hdrdir)/ruby/intern.h
nofree.o: $(hdrdir)/ruby/missing.h
nofree.o: $(hdrdir)/ruby/ruby.h
nofree.o: $(hdrdir)/ruby/st.h
@ -1796,6 +1796,20 @@ nofree.o: nofree.c
normalize.o: $(RUBY_EXTCONF_H)
normalize.o: $(arch_hdrdir)/ruby/config.h
normalize.o: $(hdrdir)/ruby.h
normalize.o: $(hdrdir)/ruby/assert.h
normalize.o: $(hdrdir)/ruby/backward.h
normalize.o: $(hdrdir)/ruby/backward/2/assume.h
normalize.o: $(hdrdir)/ruby/backward/2/attributes.h
normalize.o: $(hdrdir)/ruby/backward/2/bool.h
normalize.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
normalize.o: $(hdrdir)/ruby/backward/2/inttypes.h
normalize.o: $(hdrdir)/ruby/backward/2/limits.h
normalize.o: $(hdrdir)/ruby/backward/2/long_long.h
normalize.o: $(hdrdir)/ruby/backward/2/stdalign.h
normalize.o: $(hdrdir)/ruby/backward/2/stdarg.h
normalize.o: $(hdrdir)/ruby/defines.h
normalize.o: $(hdrdir)/ruby/encoding.h
normalize.o: $(hdrdir)/ruby/intern.h
normalize.o: $(hdrdir)/ruby/internal/anyargs.h
normalize.o: $(hdrdir)/ruby/internal/arithmetic.h
normalize.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -1936,20 +1950,6 @@ normalize.o: $(hdrdir)/ruby/internal/value_type.h
normalize.o: $(hdrdir)/ruby/internal/variable.h
normalize.o: $(hdrdir)/ruby/internal/warning_push.h
normalize.o: $(hdrdir)/ruby/internal/xmalloc.h
normalize.o: $(hdrdir)/ruby/assert.h
normalize.o: $(hdrdir)/ruby/backward.h
normalize.o: $(hdrdir)/ruby/backward/2/assume.h
normalize.o: $(hdrdir)/ruby/backward/2/attributes.h
normalize.o: $(hdrdir)/ruby/backward/2/bool.h
normalize.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
normalize.o: $(hdrdir)/ruby/backward/2/inttypes.h
normalize.o: $(hdrdir)/ruby/backward/2/limits.h
normalize.o: $(hdrdir)/ruby/backward/2/long_long.h
normalize.o: $(hdrdir)/ruby/backward/2/stdalign.h
normalize.o: $(hdrdir)/ruby/backward/2/stdarg.h
normalize.o: $(hdrdir)/ruby/defines.h
normalize.o: $(hdrdir)/ruby/encoding.h
normalize.o: $(hdrdir)/ruby/intern.h
normalize.o: $(hdrdir)/ruby/missing.h
normalize.o: $(hdrdir)/ruby/onigmo.h
normalize.o: $(hdrdir)/ruby/oniguruma.h
@ -1962,6 +1962,20 @@ normalize.o: normalize.c
qsort.o: $(RUBY_EXTCONF_H)
qsort.o: $(arch_hdrdir)/ruby/config.h
qsort.o: $(hdrdir)/ruby.h
qsort.o: $(hdrdir)/ruby/assert.h
qsort.o: $(hdrdir)/ruby/backward.h
qsort.o: $(hdrdir)/ruby/backward/2/assume.h
qsort.o: $(hdrdir)/ruby/backward/2/attributes.h
qsort.o: $(hdrdir)/ruby/backward/2/bool.h
qsort.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
qsort.o: $(hdrdir)/ruby/backward/2/inttypes.h
qsort.o: $(hdrdir)/ruby/backward/2/limits.h
qsort.o: $(hdrdir)/ruby/backward/2/long_long.h
qsort.o: $(hdrdir)/ruby/backward/2/stdalign.h
qsort.o: $(hdrdir)/ruby/backward/2/stdarg.h
qsort.o: $(hdrdir)/ruby/defines.h
qsort.o: $(hdrdir)/ruby/encoding.h
qsort.o: $(hdrdir)/ruby/intern.h
qsort.o: $(hdrdir)/ruby/internal/anyargs.h
qsort.o: $(hdrdir)/ruby/internal/arithmetic.h
qsort.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -2102,20 +2116,6 @@ qsort.o: $(hdrdir)/ruby/internal/value_type.h
qsort.o: $(hdrdir)/ruby/internal/variable.h
qsort.o: $(hdrdir)/ruby/internal/warning_push.h
qsort.o: $(hdrdir)/ruby/internal/xmalloc.h
qsort.o: $(hdrdir)/ruby/assert.h
qsort.o: $(hdrdir)/ruby/backward.h
qsort.o: $(hdrdir)/ruby/backward/2/assume.h
qsort.o: $(hdrdir)/ruby/backward/2/attributes.h
qsort.o: $(hdrdir)/ruby/backward/2/bool.h
qsort.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
qsort.o: $(hdrdir)/ruby/backward/2/inttypes.h
qsort.o: $(hdrdir)/ruby/backward/2/limits.h
qsort.o: $(hdrdir)/ruby/backward/2/long_long.h
qsort.o: $(hdrdir)/ruby/backward/2/stdalign.h
qsort.o: $(hdrdir)/ruby/backward/2/stdarg.h
qsort.o: $(hdrdir)/ruby/defines.h
qsort.o: $(hdrdir)/ruby/encoding.h
qsort.o: $(hdrdir)/ruby/intern.h
qsort.o: $(hdrdir)/ruby/missing.h
qsort.o: $(hdrdir)/ruby/onigmo.h
qsort.o: $(hdrdir)/ruby/oniguruma.h
@ -2124,9 +2124,183 @@ qsort.o: $(hdrdir)/ruby/st.h
qsort.o: $(hdrdir)/ruby/subst.h
qsort.o: $(hdrdir)/ruby/util.h
qsort.o: qsort.c
rb_interned_str.o: $(RUBY_EXTCONF_H)
rb_interned_str.o: $(arch_hdrdir)/ruby/config.h
rb_interned_str.o: $(hdrdir)/ruby.h
rb_interned_str.o: $(hdrdir)/ruby/assert.h
rb_interned_str.o: $(hdrdir)/ruby/backward.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/assume.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/attributes.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/bool.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/inttypes.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/limits.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/long_long.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/stdalign.h
rb_interned_str.o: $(hdrdir)/ruby/backward/2/stdarg.h
rb_interned_str.o: $(hdrdir)/ruby/defines.h
rb_interned_str.o: $(hdrdir)/ruby/intern.h
rb_interned_str.o: $(hdrdir)/ruby/internal/anyargs.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/char.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/double.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/fixnum.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/gid_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/int.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/intptr_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/long.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/long_long.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/mode_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/off_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/pid_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/short.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/size_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/st_data_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/arithmetic/uid_t.h
rb_interned_str.o: $(hdrdir)/ruby/internal/assume.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/alloc_size.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/artificial.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/cold.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/const.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/constexpr.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/deprecated.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/diagnose_if.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/enum_extensibility.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/error.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/flag_enum.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/forceinline.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/format.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/maybe_unused.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noalias.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/nodiscard.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noexcept.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noinline.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/nonnull.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/noreturn.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/pure.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/restrict.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/warning.h
rb_interned_str.o: $(hdrdir)/ruby/internal/attr/weakref.h
rb_interned_str.o: $(hdrdir)/ruby/internal/cast.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/apple.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/clang.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/gcc.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/intel.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/msvc.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_is/sunpro.h
rb_interned_str.o: $(hdrdir)/ruby/internal/compiler_since.h
rb_interned_str.o: $(hdrdir)/ruby/internal/config.h
rb_interned_str.o: $(hdrdir)/ruby/internal/constant_p.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rarray.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rbasic.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rbignum.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rclass.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rdata.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rfile.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rhash.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/robject.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rregexp.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rstring.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rstruct.h
rb_interned_str.o: $(hdrdir)/ruby/internal/core/rtypeddata.h
rb_interned_str.o: $(hdrdir)/ruby/internal/ctype.h
rb_interned_str.o: $(hdrdir)/ruby/internal/dllexport.h
rb_interned_str.o: $(hdrdir)/ruby/internal/dosish.h
rb_interned_str.o: $(hdrdir)/ruby/internal/error.h
rb_interned_str.o: $(hdrdir)/ruby/internal/eval.h
rb_interned_str.o: $(hdrdir)/ruby/internal/event.h
rb_interned_str.o: $(hdrdir)/ruby/internal/fl_type.h
rb_interned_str.o: $(hdrdir)/ruby/internal/gc.h
rb_interned_str.o: $(hdrdir)/ruby/internal/glob.h
rb_interned_str.o: $(hdrdir)/ruby/internal/globals.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/attribute.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/builtin.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/c_attribute.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/cpp_attribute.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/declspec_attribute.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/extension.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/feature.h
rb_interned_str.o: $(hdrdir)/ruby/internal/has/warning.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/array.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/bignum.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/class.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/compar.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/complex.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/cont.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/dir.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/enum.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/enumerator.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/error.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/eval.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/file.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/gc.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/hash.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/io.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/load.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/marshal.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/numeric.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/object.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/parse.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/proc.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/process.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/random.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/range.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/rational.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/re.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/ruby.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/select.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/select/largesize.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/signal.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/sprintf.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/string.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/struct.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/thread.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/time.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/variable.h
rb_interned_str.o: $(hdrdir)/ruby/internal/intern/vm.h
rb_interned_str.o: $(hdrdir)/ruby/internal/interpreter.h
rb_interned_str.o: $(hdrdir)/ruby/internal/iterator.h
rb_interned_str.o: $(hdrdir)/ruby/internal/memory.h
rb_interned_str.o: $(hdrdir)/ruby/internal/method.h
rb_interned_str.o: $(hdrdir)/ruby/internal/module.h
rb_interned_str.o: $(hdrdir)/ruby/internal/newobj.h
rb_interned_str.o: $(hdrdir)/ruby/internal/rgengc.h
rb_interned_str.o: $(hdrdir)/ruby/internal/scan_args.h
rb_interned_str.o: $(hdrdir)/ruby/internal/special_consts.h
rb_interned_str.o: $(hdrdir)/ruby/internal/static_assert.h
rb_interned_str.o: $(hdrdir)/ruby/internal/stdalign.h
rb_interned_str.o: $(hdrdir)/ruby/internal/stdbool.h
rb_interned_str.o: $(hdrdir)/ruby/internal/symbol.h
rb_interned_str.o: $(hdrdir)/ruby/internal/token_paste.h
rb_interned_str.o: $(hdrdir)/ruby/internal/value.h
rb_interned_str.o: $(hdrdir)/ruby/internal/value_type.h
rb_interned_str.o: $(hdrdir)/ruby/internal/variable.h
rb_interned_str.o: $(hdrdir)/ruby/internal/warning_push.h
rb_interned_str.o: $(hdrdir)/ruby/internal/xmalloc.h
rb_interned_str.o: $(hdrdir)/ruby/missing.h
rb_interned_str.o: $(hdrdir)/ruby/ruby.h
rb_interned_str.o: $(hdrdir)/ruby/st.h
rb_interned_str.o: $(hdrdir)/ruby/subst.h
rb_interned_str.o: rb_interned_str.c
rb_str_dup.o: $(RUBY_EXTCONF_H)
rb_str_dup.o: $(arch_hdrdir)/ruby/config.h
rb_str_dup.o: $(hdrdir)/ruby.h
rb_str_dup.o: $(hdrdir)/ruby/assert.h
rb_str_dup.o: $(hdrdir)/ruby/backward.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/assume.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/attributes.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/bool.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/inttypes.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/limits.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/long_long.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/stdalign.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/stdarg.h
rb_str_dup.o: $(hdrdir)/ruby/defines.h
rb_str_dup.o: $(hdrdir)/ruby/intern.h
rb_str_dup.o: $(hdrdir)/ruby/internal/anyargs.h
rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic.h
rb_str_dup.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -2267,19 +2441,6 @@ rb_str_dup.o: $(hdrdir)/ruby/internal/value_type.h
rb_str_dup.o: $(hdrdir)/ruby/internal/variable.h
rb_str_dup.o: $(hdrdir)/ruby/internal/warning_push.h
rb_str_dup.o: $(hdrdir)/ruby/internal/xmalloc.h
rb_str_dup.o: $(hdrdir)/ruby/assert.h
rb_str_dup.o: $(hdrdir)/ruby/backward.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/assume.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/attributes.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/bool.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/inttypes.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/limits.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/long_long.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/stdalign.h
rb_str_dup.o: $(hdrdir)/ruby/backward/2/stdarg.h
rb_str_dup.o: $(hdrdir)/ruby/defines.h
rb_str_dup.o: $(hdrdir)/ruby/intern.h
rb_str_dup.o: $(hdrdir)/ruby/missing.h
rb_str_dup.o: $(hdrdir)/ruby/ruby.h
rb_str_dup.o: $(hdrdir)/ruby/st.h
@ -2288,6 +2449,19 @@ rb_str_dup.o: rb_str_dup.c
set_len.o: $(RUBY_EXTCONF_H)
set_len.o: $(arch_hdrdir)/ruby/config.h
set_len.o: $(hdrdir)/ruby.h
set_len.o: $(hdrdir)/ruby/assert.h
set_len.o: $(hdrdir)/ruby/backward.h
set_len.o: $(hdrdir)/ruby/backward/2/assume.h
set_len.o: $(hdrdir)/ruby/backward/2/attributes.h
set_len.o: $(hdrdir)/ruby/backward/2/bool.h
set_len.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
set_len.o: $(hdrdir)/ruby/backward/2/inttypes.h
set_len.o: $(hdrdir)/ruby/backward/2/limits.h
set_len.o: $(hdrdir)/ruby/backward/2/long_long.h
set_len.o: $(hdrdir)/ruby/backward/2/stdalign.h
set_len.o: $(hdrdir)/ruby/backward/2/stdarg.h
set_len.o: $(hdrdir)/ruby/defines.h
set_len.o: $(hdrdir)/ruby/intern.h
set_len.o: $(hdrdir)/ruby/internal/anyargs.h
set_len.o: $(hdrdir)/ruby/internal/arithmetic.h
set_len.o: $(hdrdir)/ruby/internal/arithmetic/char.h
@ -2428,19 +2602,6 @@ set_len.o: $(hdrdir)/ruby/internal/value_type.h
set_len.o: $(hdrdir)/ruby/internal/variable.h
set_len.o: $(hdrdir)/ruby/internal/warning_push.h
set_len.o: $(hdrdir)/ruby/internal/xmalloc.h
set_len.o: $(hdrdir)/ruby/assert.h
set_len.o: $(hdrdir)/ruby/backward.h
set_len.o: $(hdrdir)/ruby/backward/2/assume.h
set_len.o: $(hdrdir)/ruby/backward/2/attributes.h
set_len.o: $(hdrdir)/ruby/backward/2/bool.h
set_len.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h
set_len.o: $(hdrdir)/ruby/backward/2/inttypes.h
set_len.o: $(hdrdir)/ruby/backward/2/limits.h
set_len.o: $(hdrdir)/ruby/backward/2/long_long.h
set_len.o: $(hdrdir)/ruby/backward/2/stdalign.h
set_len.o: $(hdrdir)/ruby/backward/2/stdarg.h
set_len.o: $(hdrdir)/ruby/defines.h
set_len.o: $(hdrdir)/ruby/intern.h
set_len.o: $(hdrdir)/ruby/missing.h
set_len.o: $(hdrdir)/ruby/ruby.h
set_len.o: $(hdrdir)/ruby/st.h

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);
}

View file

@ -201,6 +201,7 @@ static VALUE str_new_shared(VALUE klass, VALUE str);
static VALUE str_new_frozen(VALUE klass, VALUE orig);
static VALUE str_new_frozen_buffer(VALUE klass, VALUE orig, int copy_encoding);
static VALUE str_new_static(VALUE klass, const char *ptr, long len, int encindex);
static VALUE str_new(VALUE klass, const char *ptr, long len);
static void str_make_independent_expand(VALUE str, long len, long expand, const int termlen);
static inline void str_modifiable(VALUE str);
static VALUE rb_str_downcase(int argc, VALUE *argv, VALUE str);
@ -271,7 +272,7 @@ mustnot_wchar(VALUE str)
static int fstring_cmp(VALUE a, VALUE b);
static VALUE register_fstring(VALUE str);
static VALUE register_fstring(VALUE str, bool copy);
const struct st_hash_type rb_fstring_hash_type = {
fstring_cmp,
@ -280,10 +281,16 @@ const struct st_hash_type rb_fstring_hash_type = {
#define BARE_STRING_P(str) (!FL_ANY_RAW(str, FL_EXIVAR) && RBASIC_CLASS(str) == rb_cString)
struct fstr_update_arg {
VALUE fstr;
bool copy;
};
static int
fstr_update_callback(st_data_t *key, st_data_t *value, st_data_t arg, int existing)
fstr_update_callback(st_data_t *key, st_data_t *value, st_data_t data, int existing)
{
VALUE *fstr = (VALUE *)arg;
struct fstr_update_arg *arg = (struct fstr_update_arg *)data;
VALUE str = (VALUE)*key;
if (existing) {
@ -291,18 +298,25 @@ fstr_update_callback(st_data_t *key, st_data_t *value, st_data_t arg, int existi
* at next time */
if (rb_objspace_garbage_object_p(str)) {
*fstr = Qundef;
arg->fstr = Qundef;
return ST_DELETE;
}
*fstr = str;
arg->fstr = str;
return ST_STOP;
}
else {
if (FL_TEST_RAW(str, STR_FAKESTR)) {
str = str_new_static(rb_cString, RSTRING(str)->as.heap.ptr,
RSTRING(str)->as.heap.len,
ENCODING_GET(str));
if (arg->copy) {
VALUE new_str = str_new(rb_cString, RSTRING(str)->as.heap.ptr, RSTRING(str)->as.heap.len);
rb_enc_copy(new_str, str);
str = new_str;
}
else {
str = str_new_static(rb_cString, RSTRING(str)->as.heap.ptr,
RSTRING(str)->as.heap.len,
ENCODING_GET(str));
}
OBJ_FREEZE_RAW(str);
}
else {
@ -319,7 +333,7 @@ fstr_update_callback(st_data_t *key, st_data_t *value, st_data_t arg, int existi
}
RBASIC(str)->flags |= RSTRING_FSTR;
*key = *value = *fstr = str;
*key = *value = arg->fstr = str;
return ST_CONTINUE;
}
}
@ -351,7 +365,7 @@ rb_fstring(VALUE str)
if (!OBJ_FROZEN(str))
rb_str_resize(str, RSTRING_LEN(str));
fstr = register_fstring(str);
fstr = register_fstring(str, FALSE);
if (!bare) {
str_replace_shared_without_enc(str, fstr);
@ -362,27 +376,26 @@ rb_fstring(VALUE str)
}
static VALUE
register_fstring(VALUE str)
register_fstring(VALUE str, bool copy)
{
VALUE ret;
struct fstr_update_arg args;
args.copy = copy;
RB_VM_LOCK_ENTER();
{
st_table *frozen_strings = rb_vm_fstring_table();
do {
ret = str;
st_update(frozen_strings, (st_data_t)str,
fstr_update_callback, (st_data_t)&ret);
} while (ret == Qundef);
args.fstr = str;
st_update(frozen_strings, (st_data_t)str, fstr_update_callback, (st_data_t)&args);
} while (args.fstr == Qundef);
}
RB_VM_LOCK_LEAVE();
assert(OBJ_FROZEN(ret));
assert(!FL_TEST_RAW(ret, STR_FAKESTR));
assert(!FL_TEST_RAW(ret, FL_EXIVAR));
assert(RBASIC_CLASS(ret) == rb_cString);
return ret;
assert(OBJ_FROZEN(args.fstr));
assert(!FL_TEST_RAW(args.fstr, STR_FAKESTR));
assert(!FL_TEST_RAW(args.fstr, FL_EXIVAR));
assert(RBASIC_CLASS(args.fstr) == rb_cString);
return args.fstr;
}
static VALUE
@ -418,14 +431,14 @@ MJIT_FUNC_EXPORTED VALUE
rb_fstring_new(const char *ptr, long len)
{
struct RString fake_str;
return register_fstring(setup_fake_str(&fake_str, ptr, len, ENCINDEX_US_ASCII));
return register_fstring(setup_fake_str(&fake_str, ptr, len, ENCINDEX_US_ASCII), FALSE);
}
VALUE
rb_fstring_enc_new(const char *ptr, long len, rb_encoding *enc)
{
struct RString fake_str;
return register_fstring(rb_setup_fake_str(&fake_str, ptr, len, enc));
return register_fstring(rb_setup_fake_str(&fake_str, ptr, len, enc), FALSE);
}
VALUE
@ -11418,25 +11431,27 @@ rb_str_to_interned_str(VALUE str)
VALUE
rb_interned_str(const char *ptr, long len)
{
return rb_fstring_new(ptr, len);
struct RString fake_str;
return register_fstring(setup_fake_str(&fake_str, ptr, len, ENCINDEX_US_ASCII), TRUE);
}
VALUE
rb_interned_str_cstr(const char *ptr)
{
return rb_fstring_cstr(ptr);
return rb_interned_str(ptr, strlen(ptr));
}
VALUE
rb_enc_interned_str(const char *ptr, long len, rb_encoding *enc)
{
return rb_fstring_enc_new(ptr, len, enc);
struct RString fake_str;
return register_fstring(rb_setup_fake_str(&fake_str, ptr, len, enc), TRUE);
}
VALUE
rb_enc_interned_str_cstr(const char *ptr, rb_encoding *enc)
{
return rb_fstring_enc_new(ptr, strlen(ptr), enc);
return rb_enc_interned_str(ptr, strlen(ptr), enc);
}
/*

View file

@ -0,0 +1,12 @@
require 'test/unit'
require '-test-/string'
class Test_RbInternedStr < Test::Unit::TestCase
def test_interned_str
src = "a" * 20
interned_str = Bug::String.rb_interned_str_dup(src)
src.clear
src << "b" * 20
assert_equal "a" * 20, interned_str
end
end