diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2025-06-04 13:35:43 +0200 |
|---|---|---|
| committer | Jean Boussier <jean.boussier@gmail.com> | 2025-06-05 22:06:15 +0200 |
| commit | 4e39580992064a4e91e9b8626a1a220f262a7011 (patch) | |
| tree | 283baa3f6d9bdac213a6f6b44a12580d7a2f6b84 /object.c | |
| parent | 0b07d2a1e32a456fc302c8d970fa85782bdb98ce (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.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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); } |
