ruby-changes:37856
From: ko1 <ko1@a...>
Date: Wed, 11 Mar 2015 21:55:47 +0900 (JST)
Subject: [ruby-changes:37856] ko1:r49937 (trunk): * internal.h, eval_intern.h: move CREF accessors.
ko1 2015-03-11 21:55:32 +0900 (Wed, 11 Mar 2015) New Revision: 49937 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=49937 Log: * internal.h, eval_intern.h: move CREF accessors. List IMEMO supported types in internal.h. Modified files: trunk/ChangeLog trunk/eval_intern.h trunk/internal.h Index: eval_intern.h =================================================================== --- eval_intern.h (revision 49936) +++ eval_intern.h (revision 49937) @@ -203,6 +203,89 @@ enum ruby_tag_type { https://github.com/ruby/ruby/blob/trunk/eval_intern.h#L203 #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); Index: ChangeLog =================================================================== --- ChangeLog (revision 49936) +++ ChangeLog (revision 49937) @@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Wed Mar 11 21:53:43 2015 Koichi Sasada <ko1@a...> + + * 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@a...> * vm_insnhelper.h: use T_IMEMO to create THROW_DATA. Index: internal.h =================================================================== --- internal.h (revision 49936) +++ internal.h (revision 49937) @@ -555,87 +555,6 @@ typedef struct rb_cref_struct { https://github.com/ruby/ruby/blob/trunk/internal.h#L555 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 { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/