summaryrefslogtreecommitdiff
path: root/spec/ruby/core/array/pack/shared
diff options
context:
space:
mode:
authorNARUSE, Yui <naruse@airemix.jp>2023-03-23 08:11:23 +0900
committerNARUSE, Yui <naruse@airemix.jp>2023-03-23 08:11:23 +0900
commit400ccb16eefe4e21c4e3eacab4fd0f208fc5e151 (patch)
tree020e8dbf831e7f4bb7900c7d212a06c978178738 /spec/ruby/core/array/pack/shared
parentad6fe84dfa6935bd6e2c3ef3ee36bed4e8627d0b (diff)
merge revision(s) cb22d78354e201ca74eba68a8b4edefb593e6754: [Backport #19536]
Fix frozen status loss when moving objects [Bug #19536] When objects are moved between size pools, their frozen status is lost in the shape. This will cause the frozen check to be bypassed when there is an inline cache. For example, the following script should raise a FrozenError, but doesn't on Ruby 3.2 and master. class A def add_ivars @a = @b = @c = @d = 1 end def set_a @a = 10 end end a = A.new a.add_ivars a.freeze b = A.new b.add_ivars b.set_a # Set the inline cache in set_a GC.verify_compaction_references(expand_heap: true, toward: :empty) a.set_a --- shape.c | 2 +- test/ruby/test_gc_compact.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-)
Diffstat (limited to 'spec/ruby/core/array/pack/shared')
0 files changed, 0 insertions, 0 deletions