diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_err.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_err.c b/src/lj_err.c index 4ebef8a0..c1e8c561 100644 --- a/src/lj_err.c +++ b/src/lj_err.c | |||
| @@ -676,7 +676,7 @@ LJ_NOINLINE void lj_err_arg(lua_State *L, int narg, ErrMsg em) | |||
| 676 | /* Typecheck error for arguments. */ | 676 | /* Typecheck error for arguments. */ |
| 677 | LJ_NOINLINE void lj_err_argtype(lua_State *L, int narg, const char *xname) | 677 | LJ_NOINLINE void lj_err_argtype(lua_State *L, int narg, const char *xname) |
| 678 | { | 678 | { |
| 679 | TValue *o = L->base + narg-1; | 679 | TValue *o = narg < 0 ? L->top + narg : L->base + narg-1; |
| 680 | const char *tname = o < L->top ? typename(o) : lj_obj_typename[0]; | 680 | const char *tname = o < L->top ? typename(o) : lj_obj_typename[0]; |
| 681 | const char *msg = lj_str_pushf(L, err2msg(LJ_ERR_BADTYPE), xname, tname); | 681 | const char *msg = lj_str_pushf(L, err2msg(LJ_ERR_BADTYPE), xname, tname); |
| 682 | err_argmsg(L, narg, msg); | 682 | err_argmsg(L, narg, msg); |
