mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
04bc4c0662
When a string is #frozen, it's capacity is resized to fit (if it is much larger), since we know it will no longer be mutated. > puts ObjectSpace.dump(String.new("a"*30, capacity: 1000)) {"type":"STRING", "class":"0x7feaf00b7bf0", "bytesize":30, "capacity":1000, "value":"... > puts ObjectSpace.dump(String.new("a"*30, capacity: 1000).freeze) {"type":"STRING", "class":"0x7feaf00b7bf0", "frozen":true, "bytesize":30, "value":"... (ObjectSpace.dump doesn't show capacity if capacity is equal to bytesize) Previously, if we dedup into an fstring, using String#-@, capacity would not be reduced. > puts ObjectSpace.dump(-String.new("a"*30, capacity: 1000)) {"type":"STRING", "class":"0x7feaf00b7bf0", "frozen":true, "fstring":true, "bytesize":30, "capacity":1000, "value":"... This commit makes rb_fstring call rb_str_resize, the same as rb_str_freeze does. Closes: https://github.com/ruby/ruby/pull/2256 |
||
---|---|---|
.. | ||
test_capacity.rb | ||
test_coderange.rb | ||
test_cstr.rb | ||
test_ellipsize.rb | ||
test_enc_associate.rb | ||
test_enc_str_buf_cat.rb | ||
test_external_new.rb | ||
test_fstring.rb | ||
test_modify_expand.rb | ||
test_nofree.rb | ||
test_normalize.rb | ||
test_qsort.rb | ||
test_rb_str_dup.rb | ||
test_set_len.rb |