Commit 81602104 authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge pull request #1029 from crimsonwoods/fix_the_type_of_aspec

fix the type of argument named 'aspec'.
parents 17bc0a1a 52eba9fe
...@@ -37,6 +37,7 @@ extern "C" { ...@@ -37,6 +37,7 @@ extern "C" {
#include "mruby/value.h" #include "mruby/value.h"
typedef int32_t mrb_code; typedef int32_t mrb_code;
typedef int32_t mrb_aspec;
struct mrb_state; struct mrb_state;
...@@ -145,10 +146,10 @@ struct RClass *mrb_define_module(mrb_state *, const char*); ...@@ -145,10 +146,10 @@ struct RClass *mrb_define_module(mrb_state *, const char*);
mrb_value mrb_singleton_class(mrb_state*, mrb_value); mrb_value mrb_singleton_class(mrb_state*, mrb_value);
void mrb_include_module(mrb_state*, struct RClass*, struct RClass*); 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_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, int); 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,int); 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,int); 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_define_const(mrb_state*, struct RClass*, const char *name, mrb_value);
void mrb_undef_method(mrb_state*, struct RClass*, const char*); void mrb_undef_method(mrb_state*, struct RClass*, const char*);
void mrb_undef_class_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 ...@@ -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); struct RClass * mrb_define_module_under(mrb_state *mrb, struct RClass *outer, const char *name);
/* required arguments */ /* required arguments */
#define ARGS_REQ(n) (((n)&0x1f) << 19) #define ARGS_REQ(n) ((mrb_aspec)((n)&0x1f) << 19)
/* optional arguments */ /* optional arguments */
#define ARGS_OPT(n) (((n)&0x1f) << 14) #define ARGS_OPT(n) ((mrb_aspec)((n)&0x1f) << 14)
/* rest argument */ /* rest argument */
#define ARGS_REST() (1 << 13) #define ARGS_REST() ((mrb_aspec)(1 << 13))
/* required arguments after rest */ /* 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) */ /* 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 */ /* block argument */
#define ARGS_BLOCK() (1 << 1) #define ARGS_BLOCK() ((mrb_aspec)(1 << 1))
/* accept any number of arguments */ /* accept any number of arguments */
#define ARGS_ANY() ARGS_REST() #define ARGS_ANY() ARGS_REST()
/* accept no arguments */ /* accept no arguments */
#define ARGS_NONE() 0 #define ARGS_NONE() ((mrb_aspec)0)
int mrb_get_args(mrb_state *mrb, const char *format, ...); int mrb_get_args(mrb_state *mrb, const char *format, ...);
......
...@@ -55,7 +55,7 @@ struct RClass *mrb_vm_define_class(mrb_state*, mrb_value, mrb_value, mrb_sym); ...@@ -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); 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_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_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); 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 *); struct RClass *mrb_class_outer_module(mrb_state*, struct RClass *);
......
...@@ -297,7 +297,7 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, struct RPro ...@@ -297,7 +297,7 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, struct RPro
} }
void void
mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, int aspec) mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec)
{ {
struct RProc *p; struct RProc *p;
int ai = mrb_gc_arena_save(mrb); int ai = mrb_gc_arena_save(mrb);
...@@ -309,7 +309,7 @@ mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t f ...@@ -309,7 +309,7 @@ mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t f
} }
void void
mrb_define_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, int aspec) mrb_define_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, mrb_aspec aspec)
{ {
mrb_define_method_id(mrb, c, mrb_intern(mrb, name), func, aspec); mrb_define_method_id(mrb, c, mrb_intern(mrb, name), func, aspec);
} }
...@@ -928,20 +928,20 @@ mrb_singleton_class(mrb_state *mrb, mrb_value v) ...@@ -928,20 +928,20 @@ mrb_singleton_class(mrb_state *mrb, mrb_value v)
} }
void void
mrb_define_singleton_method(mrb_state *mrb, struct RObject *o, const char *name, mrb_func_t func, int aspec) mrb_define_singleton_method(mrb_state *mrb, struct RObject *o, const char *name, mrb_func_t func, mrb_aspec aspec)
{ {
prepare_singleton_class(mrb, (struct RBasic*)o); prepare_singleton_class(mrb, (struct RBasic*)o);
mrb_define_method_id(mrb, o->c, mrb_intern(mrb, name), func, aspec); mrb_define_method_id(mrb, o->c, mrb_intern(mrb, name), func, aspec);
} }
void void
mrb_define_class_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, int aspec) mrb_define_class_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, mrb_aspec aspec)
{ {
mrb_define_singleton_method(mrb, (struct RObject*)c, name, func, aspec); mrb_define_singleton_method(mrb, (struct RObject*)c, name, func, aspec);
} }
void void
mrb_define_module_function(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, int aspec) mrb_define_module_function(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, mrb_aspec aspec)
{ {
mrb_define_class_method(mrb, c, name, func, aspec); mrb_define_class_method(mrb, c, name, func, aspec);
mrb_define_method(mrb, c, name, func, aspec); mrb_define_method(mrb, c, name, func, aspec);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment