From c39797e8724683e91618168bd993ac467b81eda8 Mon Sep 17 00:00:00 2001 From: ko1 Date: Thu, 1 Nov 2018 08:53:44 +0000 Subject: introduce USE_TRANSIENT_HEAP to enable/disable theap. * include/ruby/ruby.h: intrdocue `USE_TRANSIENT_HEAP` macro to enable/disable transient heap. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- variable.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'variable.c') diff --git a/variable.c b/variable.c index d53e788b0a..f2e0c984ad 100644 --- a/variable.c +++ b/variable.c @@ -1340,10 +1340,10 @@ obj_ivar_heap_alloc(VALUE obj, size_t newsize) VALUE *newptr = rb_transient_heap_alloc(obj, sizeof(VALUE) * newsize); if (newptr != NULL) { - FL_SET_RAW(obj, ROBJECT_TRANSIENT_FLAG); + ROBJ_TRANSIENT_SET(obj); } else { - FL_UNSET_RAW(obj, ROBJECT_TRANSIENT_FLAG); + ROBJ_TRANSIENT_UNSET(obj); newptr = ALLOC_N(VALUE, newsize); } return newptr; @@ -1362,7 +1362,7 @@ obj_ivar_heap_realloc(VALUE obj, int32_t len, size_t newsize) } else { newptr = ALLOC_N(VALUE, newsize); - FL_UNSET_RAW(obj, ROBJECT_TRANSIENT_FLAG); + ROBJ_TRANSIENT_UNSET(obj); } ROBJECT(obj)->as.heap.ivptr = newptr; for (i=0; i<(int)len; i++) { @@ -1377,6 +1377,7 @@ obj_ivar_heap_realloc(VALUE obj, int32_t len, size_t newsize) return newptr; } +#if USE_TRANSIENT_HEAP void rb_obj_transient_heap_evacuate(VALUE obj, int promote) { @@ -1387,7 +1388,7 @@ rb_obj_transient_heap_evacuate(VALUE obj, int promote) if (promote) { new_ptr = ALLOC_N(VALUE, len); - FL_UNSET_RAW(obj, ROBJECT_TRANSIENT_FLAG); + ROBJ_TRANSIENT_UNSET(obj); } else { new_ptr = obj_ivar_heap_alloc(obj, len); @@ -1396,6 +1397,7 @@ rb_obj_transient_heap_evacuate(VALUE obj, int promote) ROBJECT(obj)->as.heap.ivptr = new_ptr; } } +#endif static VALUE obj_ivar_set(VALUE obj, ID id, VALUE val) -- cgit v1.2.3