Fix writebarrier in backtrace_initialize_copy
Fix write barrier in update_classvariable_cache
Fix writebarrier on rb_class_set_box_classext
Update mark bits as we go in ibf load
We're allocating as we fill in the ISEQ, which could cause GC, so we need to be careful values are marked and use write barriers.
When we were loading values here we were issuing write barriers, however if the iseq was to be marked at the time it wouldn't mark the these...
Issue writebarrier_remember after set const tbl
Add write barriers on Hash#rehash
Hide ractor traversal object hash
This could contain other hidden objects, and so needs to be hidden itself so as to not be seen by ObjectSpace.each_object
1000.times { ObjectSpace.each_object(Hash){|o| puts o.inspect; ObjectSpace.reachable_objects_from(Class) } }'...
Add and use rb_ivar_foreach_buffered
Previously, rb_ivar_foreach would walk up the shape tree, but yield instance variables to the callback as it went. If the object shape was modified during this callback, particularly with removing an instance variable, it could result in reading free'd memory....
Fix iv_count for too_complex generic ivar
Previously this branch forgot to assign iv_count when used with a generic ivar which is too_complex, which could result in it incorrectly returning 0.
[DOC] Clarify array methods using eql?
eql?
[Bug #22013]
Up to a certain size, only eql? is used, but for larger arrays a Hash is used an #hash becomes necessary.
#hash
We could consider always checking #hash for consistency, but that would decrease performance....
View all revisions | View revisions
Also available in: Atom