diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-01 08:53:44 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-01 08:53:44 +0000 |
commit | c39797e8724683e91618168bd993ac467b81eda8 (patch) | |
tree | 25bfba803716b7301a047bc579788bd8998cc29d /internal.h | |
parent | dcd0346265bfd346133e75c701b97fcb31c0ae6d (diff) | |
download | bundler-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 'internal.h')
-rw-r--r-- | internal.h | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/internal.h b/internal.h index 219f5e2aea..8d287ecdfa 100644 --- a/internal.h +++ b/internal.h @@ -712,8 +712,17 @@ void rb_hash_st_table_set(VALUE hash, st_table *st); #define RHASH_ARRAY_SIZE_SHIFT RHASH_ARRAY_SIZE_SHIFT #define RHASH_ARRAY_BOUND_MASK (VALUE)RHASH_ARRAY_BOUND_MASK #define RHASH_ARRAY_BOUND_SHIFT RHASH_ARRAY_BOUND_SHIFT + +#if USE_TRANSIENT_HEAP #define RHASH_TRANSIENT_FLAG FL_USER14 #define RHASH_TRANSIENT_P(hash) FL_TEST_RAW((hash), RHASH_TRANSIENT_FLAG) +#define RHASH_SET_TRANSIENT_FLAG(h) FL_SET_RAW(h, RHASH_TRANSIENT_FLAG) +#define RHASH_UNSET_TRANSIENT_FLAG(h) FL_UNSET_RAW(h, RHASH_TRANSIENT_FLAG) +#else +#define RHASH_TRANSIENT_P(hash) 0 +#define RHASH_SET_TRANSIENT_FLAG(h) ((void)0) +#define RHASH_UNSET_TRANSIENT_FLAG(h) ((void)0) +#endif #define RHASH_ARRAY_MAX_SIZE 8 #define RHASH_ARRAY_MAX_BOUND RHASH_ARRAY_MAX_SIZE @@ -775,7 +784,15 @@ enum { RSTRUCT_ENUM_END }; +#if USE_TRANSIENT_HEAP #define RSTRUCT_TRANSIENT_P(st) FL_TEST_RAW((obj), RSTRUCT_TRANSIENT_FLAG) +#define RSTRUCT_TRANSIENT_SET(st) FL_SET_RAW((st), RSTRUCT_TRANSIENT_FLAG) +#define RSTRUCT_TRANSIENT_UNSET(st) FL_UNSET_RAW((st), RSTRUCT_TRANSIENT_FLAG) +#else +#define RSTRUCT_TRANSIENT_P(st) 0 +#define RSTRUCT_TRANSIENT_SET(st) ((void)0) +#define RSTRUCT_TRANSIENT_UNSET(st) ((void)0) +#endif struct RStruct { struct RBasic basic; @@ -1171,6 +1188,17 @@ VALUE rb_gvar_defined(struct rb_global_entry *); #endif +#if USE_TRANSIENT_HEAP +#define RARY_TRANSIENT_SET(ary) FL_SET_RAW((ary), RARRAY_TRANSIENT_FLAG); +#define RARY_TRANSIENT_UNSET(ary) FL_UNSET_RAW((ary), RARRAY_TRANSIENT_FLAG); +#else +#undef RARRAY_TRANSIENT_P +#define RARRAY_TRANSIENT_P(a) 0 +#define RARY_TRANSIENT_SET(ary) ((void)0) +#define RARY_TRANSIENT_UNSET(ary) ((void)0) +#endif + + VALUE rb_ary_last(int, const VALUE *, VALUE); void rb_ary_set_len(VALUE, long); void rb_ary_delete_same(VALUE, VALUE); @@ -2010,9 +2038,16 @@ extern rb_encoding OnigEncodingUTF_8; #endif /* variable.c */ -#define ROBJECT_TRANSIENT_FLAG FL_USER13 -#define ROBJ_TRANSIENT_P(obj) FL_TEST_RAW((obj), ROBJECT_TRANSIENT_FLAG) - +#if USE_TRANSIENT_HEAP +#define ROBJECT_TRANSIENT_FLAG FL_USER13 +#define ROBJ_TRANSIENT_P(obj) FL_TEST_RAW((obj), ROBJECT_TRANSIENT_FLAG) +#define ROBJ_TRANSIENT_SET(obj) FL_SET_RAW((obj), ROBJECT_TRANSIENT_FLAG) +#define ROBJ_TRANSIENT_UNSET(obj) FL_UNSET_RAW((obj), ROBJECT_TRANSIENT_FLAG) +#else +#define ROBJ_TRANSIENT_P(obj) 0 +#define ROBJ_TRANSIENT_SET(obj) ((void)0) +#define ROBJ_TRANSIENT_UNSET(obj) ((void)0) +#endif void rb_gc_mark_global_tbl(void); size_t rb_generic_ivar_memsize(VALUE); VALUE rb_search_class_path(VALUE); |