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:
+6
-6
@@ -70,7 +70,7 @@ mrb_struct_members(mrb_state *mrb, mrb_value s)
|
||||
mrb_value members = mrb_struct_s_members(mrb, mrb_obj_value(mrb_obj_class(mrb, s)));
|
||||
if (mrb_type(s) == MRB_TT_STRUCT) {
|
||||
if (RSTRUCT_LEN(s) != RARRAY_LEN(members)) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "struct size differs (%ld required %ld given)",
|
||||
mrb_raisef(mrb, E_TYPE_ERROR, "struct size differs (%ld required %ld given)",
|
||||
RARRAY_LEN(members), RSTRUCT_LEN(s));
|
||||
}
|
||||
}
|
||||
@@ -595,10 +595,10 @@ mrb_struct_aref_n(mrb_state *mrb, mrb_value s, mrb_value idx)
|
||||
i = mrb_fixnum(idx);
|
||||
if (i < 0) i = RSTRUCT_LEN(s) + i;
|
||||
if (i < 0)
|
||||
mrb_raise(mrb, E_INDEX_ERROR, "offset %ld too small for struct(size:%ld)",
|
||||
mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too small for struct(size:%ld)",
|
||||
i, RSTRUCT_LEN(s));
|
||||
if (RSTRUCT_LEN(s) <= i)
|
||||
mrb_raise(mrb, E_INDEX_ERROR, "offset %ld too large for struct(size:%ld)",
|
||||
mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too large for struct(size:%ld)",
|
||||
i, RSTRUCT_LEN(s));
|
||||
return RSTRUCT_PTR(s)[i];
|
||||
}
|
||||
@@ -622,7 +622,7 @@ mrb_struct_aset_id(mrb_state *mrb, mrb_value s, mrb_sym id, mrb_value val)
|
||||
len = RARRAY_LEN(members);
|
||||
mrb_struct_modify(s);
|
||||
if (RSTRUCT_LEN(s) != len) {
|
||||
mrb_raise(mrb, E_TYPE_ERROR, "struct size differs (%ld required %ld given)",
|
||||
mrb_raisef(mrb, E_TYPE_ERROR, "struct size differs (%ld required %ld given)",
|
||||
len, RSTRUCT_LEN(s));
|
||||
}
|
||||
ptr = RSTRUCT_PTR(s);
|
||||
@@ -675,11 +675,11 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
|
||||
i = mrb_fixnum(idx);
|
||||
if (i < 0) i = RSTRUCT_LEN(s) + i;
|
||||
if (i < 0) {
|
||||
mrb_raise(mrb, E_INDEX_ERROR, "offset %ld too small for struct(size:%ld)",
|
||||
mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too small for struct(size:%ld)",
|
||||
i, RSTRUCT_LEN(s));
|
||||
}
|
||||
if (RSTRUCT_LEN(s) <= i) {
|
||||
mrb_raise(mrb, E_INDEX_ERROR, "offset %ld too large for struct(size:%ld)",
|
||||
mrb_raisef(mrb, E_INDEX_ERROR, "offset %ld too large for struct(size:%ld)",
|
||||
i, RSTRUCT_LEN(s));
|
||||
}
|
||||
mrb_struct_modify(s);
|
||||
|
||||
Reference in New Issue
Block a user