diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 60 | ||||
| -rw-r--r-- | src/codegen.c | 5 | ||||
| -rw-r--r-- | src/dump.c | 6 | ||||
| -rw-r--r-- | src/numeric.c | 4 | ||||
| -rw-r--r-- | src/object.c | 64 | ||||
| -rw-r--r-- | src/range.c | 7 | ||||
| -rw-r--r-- | src/string.c | 4 |
7 files changed, 75 insertions, 75 deletions
diff --git a/src/class.c b/src/class.c index e33ab0153..291642654 100644 --- a/src/class.c +++ b/src/class.c @@ -159,9 +159,7 @@ mrb_define_class_id(mrb_state *mrb, mrb_sym name, struct RClass *super) struct RClass* mrb_define_class(mrb_state *mrb, const char *name, struct RClass *super) { - struct RClass *c; - c = mrb_define_class_id(mrb, mrb_intern(mrb, name), super); - return c; + return mrb_define_class_id(mrb, mrb_intern(mrb, name), super); } struct RClass* @@ -377,20 +375,22 @@ to_hash(mrb_state *mrb, mrb_value val) format specifiers: - o: Object [mrb_value] - S: String [mrb_value] - A: Array [mrb_value] - H: Hash [mrb_value] - s: String [char*,int] - z: String [char*] - a: Array [mrb_value*,mrb_int] - f: Float [mrb_float] - i: Integer [mrb_int] - b: Boolean [mrb_bool] - n: Symbol [mrb_sym] - &: Block [mrb_value] - *: rest argument [mrb_value*,int] - |: optional + string mruby type C type note + ---------------------------------------------------------------------------------------------- + o: Object [mrb_value] + S: String [mrb_value] + A: Array [mrb_value] + H: Hash [mrb_value] + s: String [char*,int] Receive two arguments. + z: String [char*] NUL terminated string. + a: Array [mrb_value*,mrb_int] Receive two arguments. + f: Float [mrb_float] + i: Integer [mrb_int] + b: Boolean [mrb_bool] + n: Symbol [mrb_sym] + &: Block [mrb_value] + *: rest argument [mrb_value*,int] Receive the rest of the arguments as an array. + |: optional Next argument of '|' and later are optional. */ int mrb_get_args(mrb_state *mrb, const char *format, ...) @@ -909,6 +909,12 @@ mrb_mod_module_eval(mrb_state *mrb, mrb_value mod) } mrb_value +mrb_mod_dummy_visibility(mrb_state *mrb, mrb_value mod) +{ + return mod; +} + +mrb_value mrb_singleton_class(mrb_state *mrb, mrb_value v) { struct RBasic *obj; @@ -1075,6 +1081,7 @@ mrb_class_new_class(mrb_state *mrb, mrb_value cv) super = mrb_obj_value(mrb->object_class); } new_class = mrb_class_new(mrb, mrb_class_ptr(super)); + mrb_funcall(mrb, super, "inherited", 1, mrb_obj_value(new_class)); return mrb_obj_value(new_class); } @@ -1140,14 +1147,12 @@ mrb_bob_not(mrb_state *mrb, mrb_value cv) static mrb_value mrb_bob_missing(mrb_state *mrb, mrb_value mod) { - mrb_value name, *a; + mrb_sym name; + mrb_value *a; int alen; mrb_value inspect; - mrb_get_args(mrb, "o*", &name, &a, &alen); - if (!mrb_symbol_p(name)) { - mrb_raise(mrb, E_TYPE_ERROR, "name should be a symbol"); - } + mrb_get_args(mrb, "n*", &name, &a, &alen); if (mrb_respond_to(mrb,mod,mrb_intern2(mrb,"inspect",7))){ inspect = mrb_funcall(mrb, mod, "inspect", 0); @@ -1160,7 +1165,7 @@ mrb_bob_missing(mrb_state *mrb, mrb_value mod) } mrb_raisef(mrb, E_NOMETHOD_ERROR, "undefined method '%S' for %S", - mrb_sym2str(mrb, mrb_symbol(name)), inspect); + mrb_sym2str(mrb, name), inspect); /* not reached */ return mrb_nil_value(); } @@ -1416,10 +1421,10 @@ mrb_value mrb_mod_alias(mrb_state *mrb, mrb_value mod) { struct RClass *c = mrb_class_ptr(mod); - mrb_value new_value, old_value; + mrb_sym new_name, old_name; - mrb_get_args(mrb, "oo", &new_value, &old_value); - mrb_alias_method(mrb, c, mrb_symbol(new_value), mrb_symbol(old_value)); + mrb_get_args(mrb, "nn", &new_name, &old_name); + mrb_alias_method(mrb, c, new_name, old_name); return mrb_nil_value(); } @@ -1910,6 +1915,9 @@ mrb_init_class(mrb_state *mrb) mrb_define_method(mrb, mod, "instance_methods", mrb_mod_instance_methods, MRB_ARGS_ANY()); /* 15.2.2.4.33 */ mrb_define_method(mrb, mod, "method_defined?", mrb_mod_method_defined, MRB_ARGS_REQ(1)); /* 15.2.2.4.34 */ mrb_define_method(mrb, mod, "module_eval", mrb_mod_module_eval, MRB_ARGS_ANY()); /* 15.2.2.4.35 */ + mrb_define_method(mrb, mod, "private", mrb_mod_dummy_visibility, MRB_ARGS_ANY()); /* 15.2.2.4.36 */ + mrb_define_method(mrb, mod, "protected", mrb_mod_dummy_visibility, MRB_ARGS_ANY()); /* 15.2.2.4.37 */ + mrb_define_method(mrb, mod, "public", mrb_mod_dummy_visibility, MRB_ARGS_ANY()); /* 15.2.2.4.38 */ mrb_define_method(mrb, mod, "remove_class_variable", mrb_mod_remove_cvar, MRB_ARGS_REQ(1)); /* 15.2.2.4.39 */ mrb_define_method(mrb, mod, "remove_method", mrb_mod_remove_method, MRB_ARGS_ANY()); /* 15.2.2.4.41 */ mrb_define_method(mrb, mod, "to_s", mrb_mod_to_s, MRB_ARGS_NONE()); diff --git a/src/codegen.c b/src/codegen.c index 091561b45..e240995e5 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -59,7 +59,7 @@ typedef struct scope { int icapa; mrb_irep *irep; - int pcapa; + size_t pcapa; int scapa; int nlocals; @@ -2505,7 +2505,8 @@ codedump(mrb_state *mrb, int n) { #ifdef ENABLE_STDIO mrb_irep *irep = mrb->irep[n]; - int i, ai; + uint32_t i; + int ai; mrb_code c; if (!irep) return; diff --git a/src/dump.c b/src/dump.c index bf3d25f13..72ca9e0c3 100644 --- a/src/dump.c +++ b/src/dump.c @@ -364,13 +364,13 @@ write_lineno_record(mrb_state *mrb, mrb_irep *irep, uint8_t* bin) } static int -mrb_write_section_lineno(mrb_state *mrb, int start_index, uint8_t *bin) +mrb_write_section_lineno(mrb_state *mrb, size_t start_index, uint8_t *bin) { - int irep_no; + size_t irep_no; uint32_t section_size = 0, rlen = 0; /* size of irep record */ uint8_t *cur = bin; - if (mrb == NULL || start_index < 0 || start_index >= mrb->irep_len || bin == NULL) { + if (mrb == NULL || start_index >= mrb->irep_len || bin == NULL) { return MRB_DUMP_INVALID_ARGUMENT; } diff --git a/src/numeric.c b/src/numeric.c index 6cd82d8b6..e1543c089 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -998,7 +998,7 @@ fix_xor(mrb_state *mrb, mrb_value x) #define NUMERIC_SHIFT_WIDTH_MAX (sizeof(mrb_int)*CHAR_BIT-1) static mrb_value -lshift(mrb_state *mrb, mrb_int val, int width) +lshift(mrb_state *mrb, mrb_int val, size_t width) { if (width > NUMERIC_SHIFT_WIDTH_MAX) { mrb_raisef(mrb, E_RANGE_ERROR, "width(%S) > (%S:sizeof(mrb_int)*CHAR_BIT-1)", @@ -1010,7 +1010,7 @@ lshift(mrb_state *mrb, mrb_int val, int width) } static mrb_value -rshift(mrb_int val, int width) +rshift(mrb_int val, size_t width) { if (width >= NUMERIC_SHIFT_WIDTH_MAX) { if (val < 0) { diff --git a/src/object.c b/src/object.c index 50f2c3ab9..c09ae3072 100644 --- a/src/object.c +++ b/src/object.c @@ -68,7 +68,7 @@ mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2) static mrb_value mrb_true(mrb_state *mrb, mrb_value obj) { - return mrb_true_value(); + return mrb_true_value(); } /* 15.2.4.3.5 */ @@ -172,9 +172,6 @@ true_to_s(mrb_state *mrb, mrb_value obj) static mrb_value true_or(mrb_state *mrb, mrb_value obj) { - mrb_bool obj2; - - mrb_get_args(mrb, "b", &obj2); return mrb_true_value(); } @@ -203,9 +200,6 @@ true_or(mrb_state *mrb, mrb_value obj) static mrb_value false_and(mrb_state *mrb, mrb_value obj) { - mrb_bool obj2; - - mrb_get_args(mrb, "b", &obj2); return mrb_false_value(); } @@ -319,18 +313,18 @@ convert_type(mrb_state *mrb, mrb_value val, const char *tname, const char *metho mrb_value mrb_check_to_integer(mrb_state *mrb, mrb_value val, const char *method) { - mrb_value v; + mrb_value v; - if (mrb_type(val) == MRB_TT_FIXNUM) return val; - v = convert_type(mrb, val, "Integer", method, FALSE); - if (mrb_nil_p(v) || mrb_type(v) != MRB_TT_FIXNUM) { - return mrb_nil_value(); - } - return v; + if (mrb_type(val) == MRB_TT_FIXNUM) return val; + v = convert_type(mrb, val, "Integer", method, FALSE); + if (mrb_nil_p(v) || mrb_type(v) != MRB_TT_FIXNUM) { + return mrb_nil_value(); + } + return v; } mrb_value -mrb_convert_type(mrb_state *mrb, mrb_value val, mrb_int type, const char *tname, const char *method) +mrb_convert_type(mrb_state *mrb, mrb_value val, enum mrb_vtype type, const char *tname, const char *method) { mrb_value v; @@ -344,7 +338,7 @@ mrb_convert_type(mrb_state *mrb, mrb_value val, mrb_int type, const char *tname, } mrb_value -mrb_check_convert_type(mrb_state *mrb, mrb_value val, mrb_int type, const char *tname, const char *method) +mrb_check_convert_type(mrb_state *mrb, mrb_value val, enum mrb_vtype type, const char *tname, const char *method) { mrb_value v; @@ -355,8 +349,8 @@ mrb_check_convert_type(mrb_state *mrb, mrb_value val, mrb_int type, const char * } static const struct types { - unsigned char type; - const char *name; + unsigned char type; + const char *name; } builtin_types[] = { // {MRB_TT_NIL, "nil"}, {MRB_TT_FALSE, "false"}, @@ -500,21 +494,21 @@ mrb_obj_is_kind_of(mrb_state *mrb, mrb_value obj, struct RClass *c) static mrb_value mrb_to_integer(mrb_state *mrb, mrb_value val, const char *method) { - mrb_value v; + mrb_value v; - if (mrb_fixnum_p(val)) return val; - v = convert_type(mrb, val, "Integer", method, TRUE); - if (!mrb_obj_is_kind_of(mrb, v, mrb->fixnum_class)) { - mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %S to Integer (%S#%S gives %S)", - val, val, mrb_str_new_cstr(mrb, method), v); - } - return v; + if (mrb_fixnum_p(val)) return val; + v = convert_type(mrb, val, "Integer", method, TRUE); + if (!mrb_obj_is_kind_of(mrb, v, mrb->fixnum_class)) { + mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %S to Integer (%S#%S gives %S)", + val, val, mrb_str_new_cstr(mrb, method), v); + } + return v; } mrb_value mrb_to_int(mrb_state *mrb, mrb_value val) { - return mrb_to_integer(mrb, val, "to_int"); + return mrb_to_integer(mrb, val, "to_int"); } static mrb_value @@ -530,7 +524,7 @@ mrb_convert_to_integer(mrb_state *mrb, mrb_value val, int base) case MRB_TT_FLOAT: if (base != 0) goto arg_error; if (FIXABLE(mrb_float(val))) { - break; + break; } return mrb_flo_to_fixnum(mrb, val); @@ -546,14 +540,14 @@ string_conv: break; } if (base != 0) { - tmp = mrb_check_string_type(mrb, val); - if (!mrb_nil_p(tmp)) goto string_conv; - arg_error: - mrb_raise(mrb, E_ARGUMENT_ERROR, "base specified for non string value"); + tmp = mrb_check_string_type(mrb, val); + if (!mrb_nil_p(tmp)) goto string_conv; +arg_error: + mrb_raise(mrb, E_ARGUMENT_ERROR, "base specified for non string value"); } tmp = convert_type(mrb, val, "Integer", "to_int", FALSE); if (mrb_nil_p(tmp)) { - return mrb_to_integer(mrb, val, "to_i"); + return mrb_to_integer(mrb, val, "to_i"); } return tmp; } @@ -561,14 +555,14 @@ string_conv: mrb_value mrb_Integer(mrb_state *mrb, mrb_value val) { - return mrb_convert_to_integer(mrb, val, 0); + return mrb_convert_to_integer(mrb, val, 0); } mrb_value mrb_Float(mrb_state *mrb, mrb_value val) { if (mrb_nil_p(val)) { - mrb_raise(mrb, E_TYPE_ERROR, "can't convert nil into Float"); + mrb_raise(mrb, E_TYPE_ERROR, "can't convert nil into Float"); } switch (mrb_type(val)) { case MRB_TT_FIXNUM: diff --git a/src/range.c b/src/range.c index 992e47bd2..92eddfe8c 100644 --- a/src/range.c +++ b/src/range.c @@ -276,10 +276,10 @@ mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, if (beg < 0) { beg += len; - if (beg < 0) goto out_of_range; + if (beg < 0) return FALSE; } - if (beg > len) goto out_of_range; + if (beg > len) return FALSE; if (end > len) end = len; if (end < 0) end += len; @@ -290,9 +290,6 @@ mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, *begp = beg; *lenp = len; return TRUE; - -out_of_range: - return FALSE; } /* 15.2.14.4.12(x) */ diff --git a/src/string.c b/src/string.c index 328266df9..59a1df455 100644 --- a/src/string.c +++ b/src/string.c @@ -74,7 +74,7 @@ mrb_str_modify(mrb_state *mrb, struct RString *s) if (p) { memcpy(ptr, p, len); } - ptr[len] = 0; + ptr[len] = '\0'; s->ptr = ptr; s->aux.capa = len; str_decref(mrb, shared); @@ -398,7 +398,7 @@ mrb_str_concat(mrb_state *mrb, mrb_value self, mrb_value other) } memcpy(s1->ptr+s1->len, s2->ptr, s2->len); s1->len = len; - s1->ptr[len] = 0; + s1->ptr[len] = '\0'; } /* |
