aboutsummaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-06-13 16:19:33 -0400
committerPeter Zhu <peter@peterzhu.ca>2023-07-13 09:27:33 -0400
commit1e7b67f73370056c7521306b9f037b6cbccf640d (patch)
tree288d284f69cea8935adf323da99f84eff2bb7707 /variable.c
parentfff4773085bd70bf14ace146388dd0b9d80f244a (diff)
downloadruby-1e7b67f73370056c7521306b9f037b6cbccf640d.tar.gz
[Feature #19730] Remove transient heap
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c61
1 files changed, 4 insertions, 57 deletions
diff --git a/variable.c b/variable.c
index 750ff04e1d..5a7b2f4611 100644
--- a/variable.c
+++ b/variable.c
@@ -33,7 +33,6 @@
#include "ruby/encoding.h"
#include "ruby/st.h"
#include "ruby/util.h"
-#include "transient_heap.h"
#include "shape.h"
#include "symbol.h"
#include "variable.h"
@@ -1399,67 +1398,18 @@ generic_ivar_set(VALUE obj, ID id, VALUE val)
static VALUE *
obj_ivar_heap_alloc(VALUE obj, size_t newsize)
{
- VALUE *newptr = rb_transient_heap_alloc(obj, sizeof(VALUE) * newsize);
-
- if (newptr != NULL) {
- ROBJ_TRANSIENT_SET(obj);
- }
- else {
- ROBJ_TRANSIENT_UNSET(obj);
- newptr = ALLOC_N(VALUE, newsize);
- }
- return newptr;
+ return ALLOC_N(VALUE, newsize);
}
static VALUE *
obj_ivar_heap_realloc(VALUE obj, int32_t len, size_t newsize)
{
- VALUE *newptr;
- int i;
-
- if (ROBJ_TRANSIENT_P(obj)) {
- const VALUE *orig_ptr = ROBJECT(obj)->as.heap.ivptr;
- newptr = obj_ivar_heap_alloc(obj, newsize);
-
- assert(newptr);
- ROBJECT(obj)->as.heap.ivptr = newptr;
- for (i=0; i<(int)len; i++) {
- newptr[i] = orig_ptr[i];
- }
- }
- else {
- REALLOC_N(ROBJECT(obj)->as.heap.ivptr, VALUE, newsize);
- newptr = ROBJECT(obj)->as.heap.ivptr;
- }
+ REALLOC_N(ROBJECT(obj)->as.heap.ivptr, VALUE, newsize);
+ VALUE *newptr = ROBJECT(obj)->as.heap.ivptr;
return newptr;
}
-#if USE_TRANSIENT_HEAP
-void
-rb_obj_transient_heap_evacuate(VALUE obj, int promote)
-{
- if (ROBJ_TRANSIENT_P(obj)) {
- assert(!RB_FL_TEST_RAW(obj, ROBJECT_EMBED));
-
- uint32_t len = ROBJECT_IV_CAPACITY(obj);
- RUBY_ASSERT(!rb_shape_obj_too_complex(obj));
- const VALUE *old_ptr = ROBJECT_IVPTR(obj);
- VALUE *new_ptr;
-
- if (promote) {
- new_ptr = ALLOC_N(VALUE, len);
- ROBJ_TRANSIENT_UNSET(obj);
- }
- else {
- new_ptr = obj_ivar_heap_alloc(obj, len);
- }
- MEMCPY(new_ptr, old_ptr, VALUE, len);
- ROBJECT(obj)->as.heap.ivptr = new_ptr;
- }
-}
-#endif
-
void
rb_ensure_iv_list_size(VALUE obj, uint32_t current_capacity, uint32_t new_capacity)
{
@@ -1575,10 +1525,7 @@ rb_obj_ivar_set(VALUE obj, ID id, VALUE val)
rb_shape_set_too_complex(obj);
RUBY_ASSERT(rb_shape_obj_too_complex(obj));
- if (ROBJ_TRANSIENT_P(obj)) {
- ROBJ_TRANSIENT_UNSET(obj);
- }
- else if (!(RBASIC(obj)->flags & ROBJECT_EMBED)) {
+ if (!(RBASIC(obj)->flags & ROBJECT_EMBED)) {
xfree(ROBJECT(obj)->as.heap.ivptr);
}