mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Better error message
Raise argument error with the better message, at the only place where the size to fill can be negative.
This commit is contained in:
@@ -116,7 +116,6 @@ mrb_fix2binstr(mrb_state *mrb, mrb_value x, int base)
|
||||
|
||||
#define CHECK(l) do {\
|
||||
/* int cr = ENC_CODERANGE(result);*/\
|
||||
if ((l) < 0) mrb_raise(mrb, E_ARGUMENT_ERROR, "illegal specifier"); \
|
||||
while ((l) >= bsiz - blen) {\
|
||||
bsiz*=2;\
|
||||
if (bsiz < 0) mrb_raise(mrb, E_ARGUMENT_ERROR, "too big specifier"); \
|
||||
@@ -1059,6 +1058,10 @@ retry:
|
||||
if ((flags&FWIDTH) && need < width)
|
||||
need = width;
|
||||
need += 20;
|
||||
if (need <= 0) {
|
||||
mrb_raise(mrb, E_ARGUMENT_ERROR,
|
||||
(width > prec ? "width too big" : "prec too big"));
|
||||
}
|
||||
|
||||
CHECK(need);
|
||||
n = snprintf(&buf[blen], need, fbuf, fval);
|
||||
|
||||
Reference in New Issue
Block a user