aboutsummaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-08-21 09:13:36 -0400
committerPeter Zhu <peter@peterzhu.ca>2023-08-21 09:13:36 -0400
commit196116e576f7349c9efb51fb1fb265f7f8bb24b5 (patch)
treebab14f3a5e58d29a1560b4214ad6a87aa08d5acc /variable.c
parent8326bf1a215f93a2d1a14eeae2052bba1c2077c3 (diff)
downloadruby-196116e576f7349c9efb51fb1fb265f7f8bb24b5.tar.gz
Refactor rb_ensure_iv_list_size
We don't really need obj_ivar_heap_alloc and obj_ivar_heap_realloc since they're just one liners.
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/variable.c b/variable.c
index 5a7b2f4611..c30971bd08 100644
--- a/variable.c
+++ b/variable.c
@@ -1395,36 +1395,20 @@ generic_ivar_set(VALUE obj, ID id, VALUE val)
}
}
-static VALUE *
-obj_ivar_heap_alloc(VALUE obj, size_t newsize)
-{
- return ALLOC_N(VALUE, newsize);
-}
-
-static VALUE *
-obj_ivar_heap_realloc(VALUE obj, int32_t len, size_t newsize)
-{
- REALLOC_N(ROBJECT(obj)->as.heap.ivptr, VALUE, newsize);
- VALUE *newptr = ROBJECT(obj)->as.heap.ivptr;
-
- return newptr;
-}
-
void
rb_ensure_iv_list_size(VALUE obj, uint32_t current_capacity, uint32_t new_capacity)
{
RUBY_ASSERT(!rb_shape_obj_too_complex(obj));
- VALUE *ptr = ROBJECT_IVPTR(obj);
- VALUE *newptr;
if (RBASIC(obj)->flags & ROBJECT_EMBED) {
- newptr = obj_ivar_heap_alloc(obj, new_capacity);
+ VALUE *ptr = ROBJECT_IVPTR(obj);
+ VALUE *newptr = ALLOC_N(VALUE, new_capacity);
MEMCPY(newptr, ptr, VALUE, current_capacity);
RB_FL_UNSET_RAW(obj, ROBJECT_EMBED);
ROBJECT(obj)->as.heap.ivptr = newptr;
}
else {
- newptr = obj_ivar_heap_realloc(obj, current_capacity, new_capacity);
+ REALLOC_N(ROBJECT(obj)->as.heap.ivptr, VALUE, new_capacity);
}
}