diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | eval_intern.h | 83 | ||||
-rw-r--r-- | internal.h | 81 |
3 files changed, 89 insertions, 81 deletions
@@ -1,3 +1,9 @@ +Wed Mar 11 21:53:43 2015 Koichi Sasada <ko1@atdot.net> + + * internal.h, eval_intern.h: move CREF accessors. + + List IMEMO supported types in internal.h. + Wed Mar 11 21:45:36 2015 Koichi Sasada <ko1@atdot.net> * vm_insnhelper.h: use T_IMEMO to create THROW_DATA. diff --git a/eval_intern.h b/eval_intern.h index d41368e628..0a6e092ece 100644 --- a/eval_intern.h +++ b/eval_intern.h @@ -203,6 +203,89 @@ enum ruby_tag_type { #define SCOPE_CHECK(f) (CREF_VISI(rb_vm_cref()) == (f)) #define SCOPE_SET(f) (CREF_VISI_SET(rb_vm_cref(), (f))) +/* CREF operators */ + +#define NODE_FL_CREF_PUSHED_BY_EVAL_ (((VALUE)1)<<15) +#define NODE_FL_CREF_OMOD_SHARED_ (((VALUE)1)<<16) + +static inline VALUE +CREF_CLASS(const rb_cref_t *cref) +{ + return cref->klass; +} + +static inline void +CREF_CLASS_SET(rb_cref_t *cref, VALUE klass) +{ + RB_OBJ_WRITE(cref, &cref->klass, klass); +} + +static inline rb_cref_t * +CREF_NEXT(const rb_cref_t *cref) +{ + return cref->next; +} + +static inline void +CREF_NEXT_SET(rb_cref_t *cref, const rb_cref_t *next_cref) +{ + RB_OBJ_WRITE(cref, &cref->next, next_cref); +} + +static inline long +CREF_VISI(const rb_cref_t *cref) +{ + return (long)cref->visi; +} + +static inline void +CREF_VISI_SET(rb_cref_t *cref, long v) +{ + cref->visi = v; +} + +static inline VALUE +CREF_REFINEMENTS(const rb_cref_t *cref) +{ + return cref->refinements; +} + +static inline void +CREF_REFINEMENTS_SET(rb_cref_t *cref, VALUE refs) +{ + RB_OBJ_WRITE(cref, &cref->refinements, refs); +} + +static inline int +CREF_PUSHED_BY_EVAL(const rb_cref_t *cref) +{ + return cref->flags & NODE_FL_CREF_PUSHED_BY_EVAL_; +} + +static inline void +CREF_PUSHED_BY_EVAL_SET(rb_cref_t *cref) +{ + cref->flags |= NODE_FL_CREF_PUSHED_BY_EVAL_; +} + +static inline int +CREF_OMOD_SHARED(const rb_cref_t *cref) +{ + return cref->flags & NODE_FL_CREF_OMOD_SHARED_; +} + +static inline void +CREF_OMOD_SHARED_SET(rb_cref_t *cref) +{ + cref->flags |= NODE_FL_CREF_OMOD_SHARED_; +} + +static inline void +CREF_OMOD_SHARED_UNSET(rb_cref_t *cref) +{ + cref->flags &= ~NODE_FL_CREF_OMOD_SHARED_; +} + void rb_thread_cleanup(void); void rb_thread_wait_other_threads(void); diff --git a/internal.h b/internal.h index af1d267b84..9069de1c83 100644 --- a/internal.h +++ b/internal.h @@ -555,87 +555,6 @@ typedef struct rb_cref_struct { struct rb_cref_struct * const next; } rb_cref_t; -#define NODE_FL_CREF_PUSHED_BY_EVAL_ (((VALUE)1)<<15) -#define NODE_FL_CREF_OMOD_SHARED_ (((VALUE)1)<<16) - -static inline VALUE -CREF_CLASS(const rb_cref_t *cref) -{ - return cref->klass; -} - -static inline void -CREF_CLASS_SET(rb_cref_t *cref, VALUE klass) -{ - RB_OBJ_WRITE(cref, &cref->klass, klass); -} - -static inline rb_cref_t * -CREF_NEXT(const rb_cref_t *cref) -{ - return cref->next; -} - -static inline void -CREF_NEXT_SET(rb_cref_t *cref, const rb_cref_t *next_cref) -{ - RB_OBJ_WRITE(cref, &cref->next, next_cref); -} - -static inline long -CREF_VISI(const rb_cref_t *cref) -{ - return (long)cref->visi; -} - -static inline void -CREF_VISI_SET(rb_cref_t *cref, long v) -{ - cref->visi = v; -} - -static inline VALUE -CREF_REFINEMENTS(const rb_cref_t *cref) -{ - return cref->refinements; -} - -static inline void -CREF_REFINEMENTS_SET(rb_cref_t *cref, VALUE refs) -{ - RB_OBJ_WRITE(cref, &cref->refinements, refs); -} - -static inline int -CREF_PUSHED_BY_EVAL(const rb_cref_t *cref) -{ - return cref->flags & NODE_FL_CREF_PUSHED_BY_EVAL_; -} - -static inline void -CREF_PUSHED_BY_EVAL_SET(rb_cref_t *cref) -{ - cref->flags |= NODE_FL_CREF_PUSHED_BY_EVAL_; -} - -static inline int -CREF_OMOD_SHARED(const rb_cref_t *cref) -{ - return cref->flags & NODE_FL_CREF_OMOD_SHARED_; -} - -static inline void -CREF_OMOD_SHARED_SET(rb_cref_t *cref) -{ - cref->flags |= NODE_FL_CREF_OMOD_SHARED_; -} - -static inline void -CREF_OMOD_SHARED_UNSET(rb_cref_t *cref) -{ - cref->flags &= ~NODE_FL_CREF_OMOD_SHARED_; -} - /* SVAR */ struct vm_svar { |