Changeset 439 for EcnlProtoTool/trunk/mruby-2.1.1/include/mruby/boxing_no.h
- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- Location:
- EcnlProtoTool/trunk/mruby-2.1.1
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mruby-2.1.1/include/mruby/boxing_no.h
r321 r439 1 /* 2 ** mruby/boxing_no.h - unboxed mrb_value definition1 /** 2 ** @file mruby/boxing_no.h - unboxed mrb_value definition 3 3 ** 4 4 ** See Copyright Notice in mruby.h … … 9 9 10 10 #define MRB_FIXNUM_SHIFT 0 11 #define MRB_TT_HAS_BASIC MRB_TT_OBJECT 11 #define MRB_SYMBOL_SHIFT 0 12 13 union mrb_value_union { 14 #ifndef MRB_WITHOUT_FLOAT 15 mrb_float f; 16 #endif 17 void *p; 18 mrb_int i; 19 mrb_sym sym; 20 }; 12 21 13 22 typedef struct mrb_value { 14 union { 15 mrb_float f; 16 void *p; 17 mrb_int i; 18 mrb_sym sym; 19 } value; 23 union mrb_value_union value; 20 24 enum mrb_vtype tt; 21 25 } mrb_value; 22 26 27 #ifndef MRB_WITHOUT_FLOAT 23 28 #define mrb_float_pool(mrb,f) mrb_float_value(mrb,f) 29 #endif 24 30 25 31 #define mrb_ptr(o) (o).value.p 26 32 #define mrb_cptr(o) mrb_ptr(o) 33 #ifndef MRB_WITHOUT_FLOAT 27 34 #define mrb_float(o) (o).value.f 35 #endif 28 36 #define mrb_fixnum(o) (o).value.i 29 37 #define mrb_symbol(o) (o).value.sym … … 40 48 #define SET_BOOL_VALUE(r,b) BOXNIX_SET_VALUE(r, b ? MRB_TT_TRUE : MRB_TT_FALSE, value.i, 1) 41 49 #define SET_INT_VALUE(r,n) BOXNIX_SET_VALUE(r, MRB_TT_FIXNUM, value.i, (n)) 50 #ifndef MRB_WITHOUT_FLOAT 42 51 #define SET_FLOAT_VALUE(mrb,r,v) BOXNIX_SET_VALUE(r, MRB_TT_FLOAT, value.f, (v)) 52 #endif 43 53 #define SET_SYM_VALUE(r,v) BOXNIX_SET_VALUE(r, MRB_TT_SYMBOL, value.sym, (v)) 44 54 #define SET_OBJ_VALUE(r,v) BOXNIX_SET_VALUE(r, (((struct RObject*)(v))->tt), value.p, (v))
Note:
See TracChangeset
for help on using the changeset viewer.