summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mrbconf.h8
-rw-r--r--include/mruby.h23
-rw-r--r--include/mruby/class.h2
-rw-r--r--include/mruby/value.h4
4 files changed, 23 insertions, 14 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h
index b485642dc..030e00c9f 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -115,10 +115,18 @@ typedef short mrb_sym;
# define strtoll _strtoi64
# define PRId32 "I32d"
# define PRId64 "I64d"
+# ifdef __cplusplus
+typedef bool mrb_bool;
+# else
typedef unsigned int mrb_bool;
+# endif
#else
# include <inttypes.h>
+# ifdef __cplusplus
+typedef bool mrb_bool;
+# else
typedef _Bool mrb_bool;
+# endif
#endif
#ifdef ENABLE_STDIO
diff --git a/include/mruby.h b/include/mruby.h
index 6411f4bdb..4e4751c38 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -37,6 +37,7 @@ extern "C" {
#include "mruby/value.h"
typedef int32_t mrb_code;
+typedef int32_t mrb_aspec;
struct mrb_state;
@@ -145,10 +146,10 @@ struct RClass *mrb_define_module(mrb_state *, const char*);
mrb_value mrb_singleton_class(mrb_state*, mrb_value);
void mrb_include_module(mrb_state*, struct RClass*, struct RClass*);
-void mrb_define_method(mrb_state*, struct RClass*, const char*, mrb_func_t,int);
-void mrb_define_class_method(mrb_state *, struct RClass *, const char *, mrb_func_t, int);
-void mrb_define_singleton_method(mrb_state*, struct RObject*, const char*, mrb_func_t,int);
-void mrb_define_module_function(mrb_state*, struct RClass*, const char*, mrb_func_t,int);
+void mrb_define_method(mrb_state*, struct RClass*, const char*, mrb_func_t, mrb_aspec);
+void mrb_define_class_method(mrb_state *, struct RClass *, const char *, mrb_func_t, mrb_aspec);
+void mrb_define_singleton_method(mrb_state*, struct RObject*, const char*, mrb_func_t, mrb_aspec);
+void mrb_define_module_function(mrb_state*, struct RClass*, const char*, mrb_func_t, mrb_aspec);
void mrb_define_const(mrb_state*, struct RClass*, const char *name, mrb_value);
void mrb_undef_method(mrb_state*, struct RClass*, const char*);
void mrb_undef_class_method(mrb_state*, struct RClass*, const char*);
@@ -166,22 +167,22 @@ struct RClass * mrb_define_class_under(mrb_state *mrb, struct RClass *outer, con
struct RClass * mrb_define_module_under(mrb_state *mrb, struct RClass *outer, const char *name);
/* required arguments */
-#define ARGS_REQ(n) (((n)&0x1f) << 19)
+#define ARGS_REQ(n) ((mrb_aspec)((n)&0x1f) << 19)
/* optional arguments */
-#define ARGS_OPT(n) (((n)&0x1f) << 14)
+#define ARGS_OPT(n) ((mrb_aspec)((n)&0x1f) << 14)
/* rest argument */
-#define ARGS_REST() (1 << 13)
+#define ARGS_REST() ((mrb_aspec)(1 << 13))
/* required arguments after rest */
-#define ARGS_POST(n) (((n)&0x1f) << 8)
+#define ARGS_POST(n) ((mrb_aspec)((n)&0x1f) << 8)
/* keyword arguments (n of keys, kdict) */
-#define ARGS_KEY(n1,n2) ((((n1)&0x1f) << 3) | ((n2)?(1<<2):0))
+#define ARGS_KEY(n1,n2) ((mrb_aspec)((((n1)&0x1f) << 3) | ((n2)?(1<<2):0)))
/* block argument */
-#define ARGS_BLOCK() (1 << 1)
+#define ARGS_BLOCK() ((mrb_aspec)(1 << 1))
/* accept any number of arguments */
#define ARGS_ANY() ARGS_REST()
/* accept no arguments */
-#define ARGS_NONE() 0
+#define ARGS_NONE() ((mrb_aspec)0)
int mrb_get_args(mrb_state *mrb, const char *format, ...);
diff --git a/include/mruby/class.h b/include/mruby/class.h
index c303db9ae..b36c6f7f1 100644
--- a/include/mruby/class.h
+++ b/include/mruby/class.h
@@ -55,7 +55,7 @@ struct RClass *mrb_vm_define_class(mrb_state*, mrb_value, mrb_value, mrb_sym);
struct RClass *mrb_vm_define_module(mrb_state*, mrb_value, mrb_sym);
void mrb_define_method_vm(mrb_state*, struct RClass*, mrb_sym, mrb_value);
void mrb_define_method_raw(mrb_state*, struct RClass*, mrb_sym, struct RProc *);
-void mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, int aspec);
+void mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec);
void mrb_alias_method(mrb_state *mrb, struct RClass *c, mrb_sym a, mrb_sym b);
struct RClass *mrb_class_outer_module(mrb_state*, struct RClass *);
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 7f31b0982..eae08855d 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -158,8 +158,8 @@ mrb_float_value(mrb_float f)
#define MRB_OBJECT_HEADER \
enum mrb_vtype tt:8;\
- unsigned int color:3;\
- unsigned int flags:21;\
+ uint32_t color:3;\
+ uint32_t flags:21;\
struct RClass *c;\
struct RBasic *gcnext