summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2023-11-23 18:37:07 -0500
committerAlan Wu <XrXr@users.noreply.github.com>2023-11-23 20:30:18 -0500
commit1ffaff884e3e0704393b7b7bd312798da094f709 (patch)
tree7ec38c63e73427a51d780b960f93561825d1233c /test/ruby
parent22de08811e28115da29616790bf9cad2ecdb7913 (diff)
Allow ivars movement in too_complex RCLASSes to fix crash
Previously, because gc_update_object_references() did not update the VALUEs in the too_complex ivar st_table for T_CLASS and T_MODULE objects, GC compaction could finish with corrupted objects. - start with `klass`, not too_complex - GC incremental step marks `klass` and its ivars - ruby code makes `klass` too_complex - GC compaction runs and move `klass` ivars, but because `klass` is too_complex, its ivars are not updated by gc_update_object_references(), leaving T_NONE or T_MOVED objects in the ivar table. Co-authored-by: Peter Zhu <peter@peterzhu.ca>
Diffstat (limited to 'test/ruby')
0 files changed, 0 insertions, 0 deletions