mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
mrb_raisef(): new function. Same as previou version of mrb_raise().
mrb_raise(): API modified. It cannot treat variable arguments.
This commit is contained in:
+5
-5
@@ -305,7 +305,7 @@ convert_type(mrb_state *mrb, mrb_value val, const char *tname, const char *metho
|
||||
m = mrb_intern(mrb, method);
|
||||
if (!mrb_respond_to(mrb, val, m)) {
|
||||
if (raise) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "can't convert %s into %s",
|
||||
mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %s into %s",
|
||||
mrb_nil_p(val) ? "nil" :
|
||||
(mrb_type(val) == MRB_TT_TRUE) ? "true" :
|
||||
(mrb_type(val) == MRB_TT_FALSE) ? "false" :
|
||||
@@ -341,7 +341,7 @@ mrb_convert_type(mrb_state *mrb, mrb_value val, mrb_int type, const char *tname,
|
||||
if (mrb_type(val) == type) return val;
|
||||
v = convert_type(mrb, val, tname, method, 1/*Qtrue*/);
|
||||
if (mrb_type(v) != type) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "%s cannot be converted to %s by #%s",
|
||||
mrb_raisef(mrb, E_TYPE_ERROR, "%s cannot be converted to %s by #%s",
|
||||
mrb_obj_classname(mrb, val), tname, method);
|
||||
}
|
||||
return v;
|
||||
@@ -419,12 +419,12 @@ mrb_check_type(mrb_state *mrb, mrb_value x, enum mrb_vtype t)
|
||||
else {
|
||||
etype = mrb_obj_classname(mrb, x);
|
||||
}
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "wrong argument type %s (expected %s)",
|
||||
mrb_raisef(mrb, E_TYPE_ERROR, "wrong argument type %s (expected %s)",
|
||||
etype, type->name);
|
||||
}
|
||||
type++;
|
||||
}
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "unknown type 0x%x (0x%x given)", t, mrb_type(x));
|
||||
mrb_raisef(mrb, E_TYPE_ERROR, "unknown type 0x%x (0x%x given)", t, mrb_type(x));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,7 +513,7 @@ mrb_to_integer(mrb_state *mrb, mrb_value val, const char *method)
|
||||
v = convert_type(mrb, val, "Integer", method, TRUE);
|
||||
if (!mrb_obj_is_kind_of(mrb, v, mrb->fixnum_class)) {
|
||||
const char *cname = mrb_obj_classname(mrb, val);
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "can't convert %s to Integer (%s#%s gives %s)",
|
||||
mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %s to Integer (%s#%s gives %s)",
|
||||
cname, cname, method, mrb_obj_classname(mrb, v));
|
||||
}
|
||||
return v;
|
||||
|
||||
Reference in New Issue
Block a user