Changeset 331 for EcnlProtoTool/trunk/mruby-1.3.0/include/mruby/value.h
- Timestamp:
- Jan 21, 2018, 12:10:09 AM (6 years ago)
- Location:
- EcnlProtoTool/trunk/mruby-1.3.0
- Files:
-
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/mruby-1.3.0/include/mruby/value.h
r321 r331 8 8 #define MRUBY_VALUE_H 9 9 10 #include " mruby/common.h"10 #include "common.h" 11 11 12 12 /** … … 21 21 #if defined(MRB_INT16) && defined(MRB_INT64) 22 22 # error "You can't define MRB_INT16 and MRB_INT64 at the same time." 23 #endif 24 25 #if defined _MSC_VER && _MSC_VER < 1800 26 # define PRIo64 "llo" 27 # define PRId64 "lld" 28 # define PRIx64 "llx" 29 # define PRIo16 "ho" 30 # define PRId16 "hd" 31 # define PRIx16 "hx" 32 # define PRIo32 "o" 33 # define PRId32 "d" 34 # define PRIx32 "x" 35 #else 36 # include <inttypes.h> 23 37 #endif 24 38 … … 28 42 # define MRB_INT_MIN (INT64_MIN>>MRB_FIXNUM_SHIFT) 29 43 # define MRB_INT_MAX (INT64_MAX>>MRB_FIXNUM_SHIFT) 44 # define MRB_PRIo PRIo64 45 # define MRB_PRId PRId64 46 # define MRB_PRIx PRIx64 30 47 #elif defined(MRB_INT16) 31 48 typedef int16_t mrb_int; … … 33 50 # define MRB_INT_MIN (INT16_MIN>>MRB_FIXNUM_SHIFT) 34 51 # define MRB_INT_MAX (INT16_MAX>>MRB_FIXNUM_SHIFT) 52 # define MRB_PRIo PRIo16 53 # define MRB_PRId PRId16 54 # define MRB_PRIx PRIx16 35 55 #else 36 56 typedef int32_t mrb_int; … … 38 58 # define MRB_INT_MIN (INT32_MIN>>MRB_FIXNUM_SHIFT) 39 59 # define MRB_INT_MAX (INT32_MAX>>MRB_FIXNUM_SHIFT) 40 #endif 41 60 # define MRB_PRIo PRIo32 61 # define MRB_PRId PRId32 62 # define MRB_PRIx PRIx32 63 #endif 64 65 66 MRB_API double mrb_float_read(const char*, char**); 42 67 #ifdef MRB_USE_FLOAT 43 68 typedef float mrb_float; 44 # define str_to_mrb_float(buf) strtof(buf, NULL)45 69 #else 46 70 typedef double mrb_float; 47 # define str_to_mrb_float(buf) strtod(buf, NULL)48 71 #endif 49 72 … … 63 86 # define isinf(n) (!_finite(n) && !_isnan(n)) 64 87 # define signbit(n) (_copysign(1.0, (n)) < 0.0) 65 # define strtof (float)strtod66 88 static const unsigned int IEEE754_INFINITY_BITS_SINGLE = 0x7F800000; 67 89 # define INFINITY (*(float *)&IEEE754_INFINITY_BITS_SINGLE) … … 94 116 MRB_TT_DATA, /* 21 */ 95 117 MRB_TT_FIBER, /* 22 */ 96 MRB_TT_MAXDEFINE /* 23 */ 118 MRB_TT_ISTRUCT, /* 23 */ 119 MRB_TT_BREAK, /* 24 */ 120 MRB_TT_MAXDEFINE /* 25 */ 97 121 }; 98 122 99 #include "mruby/object.h"123 #include <mruby/object.h> 100 124 101 125 #ifdef MRB_DOCUMENTATION_BLOCK … … 188 212 mrb_value v; 189 213 SET_OBJ_VALUE(v, (struct RBasic*)p); 214 mrb_assert(p == mrb_ptr(v)); 215 mrb_assert(((struct RBasic*)p)->tt == mrb_type(v)); 190 216 return v; 191 217 } … … 242 268 243 269 #ifdef MRB_USE_ETEXT_EDATA 270 #if (defined(__APPLE__) && defined(__MACH__)) 271 #include <mach-o/getsect.h> 272 static inline mrb_bool 273 mrb_ro_data_p(const char *p) 274 { 275 return (const char*)get_etext() < p && p < (const char*)get_edata(); 276 } 277 #else 244 278 extern char _etext[]; 245 279 #ifdef MRB_NO_INIT_ARRAY_START … … 260 294 } 261 295 #endif 296 #endif 262 297 #else 263 298 # define mrb_ro_data_p(p) FALSE
Note:
See TracChangeset
for help on using the changeset viewer.