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
|
Line | |
---|
1 | /**
|
---|
2 | ** @file mruby/object.h - mruby object definition
|
---|
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 \
|
---|
11 | struct RClass *c; \
|
---|
12 | struct RBasic *gcnext; \
|
---|
13 | enum mrb_vtype tt:8; \
|
---|
14 | uint32_t color:3; \
|
---|
15 | uint32_t flags:21
|
---|
16 |
|
---|
17 | #define MRB_FLAG_TEST(obj, flag) ((obj)->flags & (flag))
|
---|
18 |
|
---|
19 | struct RBasic {
|
---|
20 | MRB_OBJECT_HEADER;
|
---|
21 | };
|
---|
22 | #define mrb_basic_ptr(v) ((struct RBasic*)(mrb_ptr(v)))
|
---|
23 |
|
---|
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)
|
---|
29 |
|
---|
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.