Last change
on this file since 439 was 439, checked in by coas-nagasima, 4 years ago |
mrubyを2.1.1に更新
|
-
Property svn:eol-style
set to
native
-
Property svn:mime-type
set to
text/x-chdr;charset=UTF-8
|
File size:
1006 bytes
|
Rev | Line | |
---|
[439] | 1 | /**
|
---|
| 2 | ** @file mruby/object.h - mruby object definition
|
---|
[270] | 3 | **
|
---|
| 4 | ** See Copyright Notice in mruby.h
|
---|
| 5 | */
|
---|
| 6 |
|
---|
| 7 | #ifndef MRUBY_OBJECT_H
|
---|
| 8 | #define MRUBY_OBJECT_H
|
---|
| 9 |
|
---|
| 10 | #define MRB_OBJECT_HEADER \
|
---|
[439] | 11 | struct RClass *c; \
|
---|
| 12 | struct RBasic *gcnext; \
|
---|
| 13 | enum mrb_vtype tt:8; \
|
---|
| 14 | uint32_t color:3; \
|
---|
| 15 | uint32_t flags:21
|
---|
[270] | 16 |
|
---|
[439] | 17 | #define MRB_FLAG_TEST(obj, flag) ((obj)->flags & (flag))
|
---|
[270] | 18 |
|
---|
| 19 | struct RBasic {
|
---|
| 20 | MRB_OBJECT_HEADER;
|
---|
| 21 | };
|
---|
| 22 | #define mrb_basic_ptr(v) ((struct RBasic*)(mrb_ptr(v)))
|
---|
| 23 |
|
---|
[439] | 24 | #define MRB_FL_OBJ_IS_FROZEN (1 << 20)
|
---|
| 25 | #define MRB_FROZEN_P(o) ((o)->flags & MRB_FL_OBJ_IS_FROZEN)
|
---|
| 26 | #define MRB_SET_FROZEN_FLAG(o) ((o)->flags |= MRB_FL_OBJ_IS_FROZEN)
|
---|
| 27 | #define MRB_UNSET_FROZEN_FLAG(o) ((o)->flags &= ~MRB_FL_OBJ_IS_FROZEN)
|
---|
| 28 | #define mrb_frozen_p(o) MRB_FROZEN_P(o)
|
---|
[331] | 29 |
|
---|
[270] | 30 | struct RObject {
|
---|
| 31 | MRB_OBJECT_HEADER;
|
---|
| 32 | struct iv_tbl *iv;
|
---|
| 33 | };
|
---|
| 34 | #define mrb_obj_ptr(v) ((struct RObject*)(mrb_ptr(v)))
|
---|
| 35 |
|
---|
| 36 | #define mrb_special_const_p(x) mrb_immediate_p(x)
|
---|
| 37 |
|
---|
| 38 | struct RFiber {
|
---|
| 39 | MRB_OBJECT_HEADER;
|
---|
| 40 | struct mrb_context *cxt;
|
---|
| 41 | };
|
---|
| 42 |
|
---|
| 43 | #endif /* MRUBY_OBJECT_H */
|
---|
Note:
See
TracBrowser
for help on using the repository browser.