aboutsummaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-01 08:53:44 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-01 08:53:44 +0000
commitc39797e8724683e91618168bd993ac467b81eda8 (patch)
tree25bfba803716b7301a047bc579788bd8998cc29d /variable.c
parentdcd0346265bfd346133e75c701b97fcb31c0ae6d (diff)
downloadruby-c39797e8724683e91618168bd993ac467b81eda8.tar.gz
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
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c10
1 files changed, 6 insertions, 4 deletions
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)