summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2025-06-04 13:35:43 +0200
committerJean Boussier <jean.boussier@gmail.com>2025-06-05 22:06:15 +0200
commit4e39580992064a4e91e9b8626a1a220f262a7011 (patch)
tree283baa3f6d9bdac213a6f6b44a12580d7a2f6b84 /object.c
parent0b07d2a1e32a456fc302c8d970fa85782bdb98ce (diff)
Refactor raw accesses to rb_shape_t.capacity
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/13524
Diffstat (limited to 'object.c')
-rw-r--r--object.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/object.c b/object.c
index e6ad182651..cee423cc19 100644
--- a/object.c
+++ b/object.c
@@ -355,9 +355,12 @@ rb_obj_copy_ivar(VALUE dest, VALUE obj)
VALUE *src_buf = ROBJECT_FIELDS(obj);
VALUE *dest_buf = ROBJECT_FIELDS(dest);
- RUBY_ASSERT(src_num_ivs <= RSHAPE(dest_shape_id)->capacity);
- if (RSHAPE(initial_shape_id)->capacity < RSHAPE(dest_shape_id)->capacity) {
- rb_ensure_iv_list_size(dest, RSHAPE(initial_shape_id)->capacity, RSHAPE(dest_shape_id)->capacity);
+ attr_index_t initial_capa = RSHAPE_CAPACITY(initial_shape_id);
+ attr_index_t dest_capa = RSHAPE_CAPACITY(dest_shape_id);
+
+ RUBY_ASSERT(src_num_ivs <= dest_capa);
+ if (initial_capa < dest_capa) {
+ rb_ensure_iv_list_size(dest, 0, dest_capa);
dest_buf = ROBJECT_FIELDS(dest);
}