diff options
Diffstat (limited to 'include/ruby')
| -rw-r--r-- | include/ruby/internal/core/rtypeddata.h | 12 | ||||
| -rw-r--r-- | include/ruby/internal/fl_type.h | 4 |
2 files changed, 7 insertions, 9 deletions
diff --git a/include/ruby/internal/core/rtypeddata.h b/include/ruby/internal/core/rtypeddata.h index 4d9fd4a6ac..8e16c31d99 100644 --- a/include/ruby/internal/core/rtypeddata.h +++ b/include/ruby/internal/core/rtypeddata.h @@ -115,10 +115,8 @@ #define RUBY_TYPED_PROMOTED1 RUBY_TYPED_PROMOTED1 /** @endcond */ -#define IS_TYPED_DATA ((VALUE)1) -#define TYPED_DATA_EMBEDDED ((VALUE)2) -#define TYPED_DATA_PTR_FLAGS ((VALUE)3) -#define TYPED_DATA_PTR_MASK (~TYPED_DATA_PTR_FLAGS) +#define TYPED_DATA_EMBEDDED ((VALUE)1) +#define TYPED_DATA_PTR_MASK (~(TYPED_DATA_EMBEDDED)) /** * @private @@ -181,9 +179,9 @@ rbimpl_typeddata_flags { RUBY_TYPED_WB_PROTECTED = RUBY_FL_WB_PROTECTED, /* THIS FLAG DEPENDS ON Ruby version */ /** - * This flag no longer in use + * This flag is used to distinguish RTypedData from deprecated RData objects. */ - RUBY_TYPED_UNUSED = RUBY_FL_UNUSED6, + RUBY_TYPED_FL_IS_TYPED_DATA = RUBY_FL_USERPRIV0, /** * This flag determines whether marking and compaction should be carried out @@ -569,7 +567,7 @@ RBIMPL_ATTR_ARTIFICIAL() static inline bool rbimpl_rtypeddata_p(VALUE obj) { - return RTYPEDDATA(obj)->type & IS_TYPED_DATA; + return FL_TEST_RAW(obj, RUBY_TYPED_FL_IS_TYPED_DATA); } RBIMPL_ATTR_PURE_UNLESS_DEBUG() diff --git a/include/ruby/internal/fl_type.h b/include/ruby/internal/fl_type.h index 9e1f3dd15c..da8670a808 100644 --- a/include/ruby/internal/fl_type.h +++ b/include/ruby/internal/fl_type.h @@ -217,11 +217,11 @@ ruby_fl_type { RUBY_FL_PROMOTED = (1<<5), /** - * This flag is no longer in use + * This flag meaning is type dependent, currently only used by T_DATA. * * @internal */ - RUBY_FL_UNUSED6 = (1<<6), + RUBY_FL_USERPRIV0 = (1<<6), /** * This flag has something to do with finalisers. A ruby object can have |
