mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
object.h: separate frozen flag to the independent bit-field
So that other flag operation do not break frozen flag.
This commit is contained in:
@@ -12,7 +12,8 @@
|
||||
struct RBasic *gcnext; \
|
||||
enum mrb_vtype tt:8; \
|
||||
unsigned int gccolor:3; \
|
||||
uint32_t flags:21
|
||||
unsigned int frozen:1; \
|
||||
uint32_t flags:20
|
||||
|
||||
#define MRB_FLAG_TEST(obj, flag) ((obj)->flags & (flag))
|
||||
|
||||
@@ -21,10 +22,10 @@ struct RBasic {
|
||||
};
|
||||
#define mrb_basic_ptr(v) ((struct RBasic*)(mrb_ptr(v)))
|
||||
|
||||
#define MRB_FL_OBJ_IS_FROZEN (1 << 20)
|
||||
#define MRB_FROZEN_P(o) ((o)->flags & MRB_FL_OBJ_IS_FROZEN)
|
||||
#define MRB_SET_FROZEN_FLAG(o) ((o)->flags |= MRB_FL_OBJ_IS_FROZEN)
|
||||
#define MRB_UNSET_FROZEN_FLAG(o) ((o)->flags &= ~MRB_FL_OBJ_IS_FROZEN)
|
||||
#define MRB_OBJ_IS_FROZEN 1
|
||||
#define MRB_FROZEN_P(o) ((o)->frozen)
|
||||
#define MRB_SET_FROZEN_FLAG(o) ((o)->frozen = 1)
|
||||
#define MRB_UNSET_FROZEN_FLAG(o) ((o)->frozen = 0)
|
||||
#define mrb_frozen_p(o) MRB_FROZEN_P(o)
|
||||
|
||||
struct RObject {
|
||||
|
||||
Reference in New Issue
Block a user