Project

General

Profile

Actions

Feature #18901

closed

Support cross size pool movement for T_ARRAY

Added by eightbitraptor (Matthew Valentine-House) about 1 month ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:109159]

Description

Github PR

This PR enables Arrays to move between size pools during compaction. This can occur if the array is mutated such that it would fit in a different size pool when embedded. It uses the mechanics implemented in [#18819]

The move is carried out in two stages:

  • The RVALUE is moved to a destination heap during object movement
    phase of compaction
  • The array data is re-embedded and the original buffer free'd if
    required. This happens during the update references step
Actions #1

Updated by eightbitraptor (Matthew Valentine-House) about 1 month ago

  • Status changed from Open to Closed

Applied in changeset git|214ed4cbc6f33675230602dd09268b436da96f7d.


[Feature #18901] Support size pool movement for Arrays

This commit enables Arrays to move between size pools during compaction.
This can occur if the array is mutated such that it would fit in a
different size pool when embedded.

The move is carried out in two stages:

  1. The RVALUE is moved to a destination heap during object movement
    phase of compaction
  2. The array data is re-embedded and the original buffer free'd if
    required. This happens during the update references step
Actions

Also available in: Atom PDF