diff options
| author | Daniel Bovensiepen <[email protected]> | 2012-11-01 16:12:57 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2012-11-01 16:12:57 +0800 |
| commit | cdb72a05a294eb8521dd40c011160228496312cb (patch) | |
| tree | 283586ad23f2dc6dfd1fd1aaa354f18c23d8c0d6 /include | |
| parent | 88dfaf19aa0808f78d13133d61ea433d043923f9 (diff) | |
| parent | 57910ca5353e1feba1fb069a876b84a52f33d39f (diff) | |
| download | mruby-cdb72a05a294eb8521dd40c011160228496312cb.tar.gz mruby-cdb72a05a294eb8521dd40c011160228496312cb.zip | |
Merge remote-tracking branch 'upstream/master' into mrbgems
Diffstat (limited to 'include')
| -rw-r--r-- | include/mrbconf.h | 13 | ||||
| -rw-r--r-- | include/mruby.h | 4 | ||||
| -rw-r--r-- | include/mruby/data.h | 2 | ||||
| -rw-r--r-- | include/mruby/dump.h | 1 | ||||
| -rw-r--r-- | include/mruby/irep.h | 10 | ||||
| -rw-r--r-- | include/mruby/numeric.h | 4 |
6 files changed, 24 insertions, 10 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h index d7ccb261d..841ef1823 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -55,15 +55,26 @@ #ifdef MRB_USE_FLOAT typedef float mrb_float; +#define mrb_float_to_str(buf, i) sprintf((buf), "%.7e", (i)) +#define str_to_mrb_float(buf) (mrb_float)strtof((buf),NULL) #else typedef double mrb_float; +#define mrb_float_to_str(buf, i) sprintf((buf), "%.16e", (i)) +#define str_to_mrb_float(buf) (mrb_float)strtod((buf),NULL) #endif -#define readfloat(p) (mrb_float)strtod((p),NULL) #ifdef MRB_NAN_BOXING typedef int32_t mrb_int; +#define MRB_INT_MIN INT32_MIN +#define MRB_INT_MAX INT32_MAX +#define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i)) +#define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10); #else typedef int mrb_int; +#define MRB_INT_MIN INT_MIN +#define MRB_INT_MAX INT_MAX +#define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i)) +#define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10); #endif typedef short mrb_sym; diff --git a/include/mruby.h b/include/mruby.h index b741e6444..94fa393ea 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -282,8 +282,8 @@ mrb_value mrb_exc_new(mrb_state *mrb, struct RClass *c, const char *ptr, long le void mrb_exc_raise(mrb_state *mrb, mrb_value exc); int mrb_block_given_p(void); -void mrb_raise(mrb_state *mrb, struct RClass *c, const char *fmt, ...); -void rb_raise(struct RClass *c, const char *fmt, ...); +void mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg); +void mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...); void mrb_warn(const char *fmt, ...); void mrb_bug(const char *fmt, ...); diff --git a/include/mruby/data.h b/include/mruby/data.h index ad91e0044..b9bedb3f9 100644 --- a/include/mruby/data.h +++ b/include/mruby/data.h @@ -30,7 +30,7 @@ struct RData *mrb_data_object_alloc(mrb_state *mrb, struct RClass* klass, void * #define Data_Make_Struct(mrb,klass,strct,type,sval) (\ sval = mrb_malloc(mrb, sizeof(strct)),\ - memset(sval, 0, sizeof(strct)),\ + { static const strct zero = { 0 }; *sval = zero},\ Data_Wrap_Struct(mrb,klass,type,sval)\ ) diff --git a/include/mruby/dump.h b/include/mruby/dump.h index 0826606e9..cad797275 100644 --- a/include/mruby/dump.h +++ b/include/mruby/dump.h @@ -41,6 +41,7 @@ int mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname); #define MRB_DUMP_SIZE_OF_LONG 4 #define MRB_DUMP_SIZE_OF_INT 4 #define MRB_DUMP_SIZE_OF_SHORT 2 +#define MRB_DUMP_SIZE_OF_CHAR 1 /* null symbol length */ #define MRB_DUMP_NULL_SYM_LEN 0xFFFF diff --git a/include/mruby/irep.h b/include/mruby/irep.h index 0d8a05dbe..534590849 100644 --- a/include/mruby/irep.h +++ b/include/mruby/irep.h @@ -12,10 +12,10 @@ extern "C" { #endif typedef struct mrb_irep { - int idx; - - int nlocals; - int nregs; + int idx:16; + int nlocals:16; + int nregs:16; + int flags:8; mrb_code *iseq; mrb_value *pool; @@ -28,6 +28,8 @@ typedef struct mrb_irep { int ilen, plen, slen; } mrb_irep; +#define MRB_ISEQ_NO_FREE 1 + void mrb_add_irep(mrb_state *mrb, int n); #if defined(__cplusplus) diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h index fed9ad39a..9a5ba449f 100644 --- a/include/mruby/numeric.h +++ b/include/mruby/numeric.h @@ -13,8 +13,8 @@ extern "C" { #include <limits.h> -#define POSFIXABLE(f) ((f) <= INT_MAX) -#define NEGFIXABLE(f) ((f) >= INT_MIN) +#define POSFIXABLE(f) ((f) <= MRB_INT_MAX) +#define NEGFIXABLE(f) ((f) >= MRB_INT_MIN) #define FIXABLE(f) (POSFIXABLE(f) && NEGFIXABLE(f)) mrb_value mrb_flt2big(mrb_state *mrb, mrb_float d); |
