Skip to content
  • Matt Valentine-House's avatar
    32254818
    Prevent rb_gc_mark_values from pinning objects · 32254818
    Matt Valentine-House authored
    This is an internal only function not exposed to the C extension API.
    It's only use so far is from rb_vm_mark, where it's used to mark the
    values in the vm->trap_list.cmd array.
    
    There shouldn't be any reason why these cannot move.
    
    This commit allows them to move by updating their references during the
    reference updating step of compaction.
    
    To do this we've introduced another internal function
    rb_gc_update_values as a partner to rb_gc_mark_values.
    
    This allows us to refactor rb_gc_mark_values to not pin
    32254818
    Prevent rb_gc_mark_values from pinning objects
    Matt Valentine-House authored
    This is an internal only function not exposed to the C extension API.
    It's only use so far is from rb_vm_mark, where it's used to mark the
    values in the vm->trap_list.cmd array.
    
    There shouldn't be any reason why these cannot move.
    
    This commit allows them to move by updating their references during the
    reference updating step of compaction.
    
    To do this we've introduced another internal function
    rb_gc_update_values as a partner to rb_gc_mark_values.
    
    This allows us to refactor rb_gc_mark_values to not pin
Loading