diff options
Diffstat (limited to 'src/lj_err.c')
-rw-r--r-- | src/lj_err.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/lj_err.c b/src/lj_err.c index 42cd12b4..7ae87a82 100644 --- a/src/lj_err.c +++ b/src/lj_err.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include "lj_ff.h" | 16 | #include "lj_ff.h" |
17 | #include "lj_trace.h" | 17 | #include "lj_trace.h" |
18 | #include "lj_vm.h" | 18 | #include "lj_vm.h" |
19 | #include "lj_strfmt.h" | ||
19 | 20 | ||
20 | /* | 21 | /* |
21 | ** LuaJIT can either use internal or external frame unwinding: | 22 | ** LuaJIT can either use internal or external frame unwinding: |
@@ -573,7 +574,7 @@ LJ_NORET LJ_NOINLINE static void err_msgv(lua_State *L, ErrMsg em, ...) | |||
573 | va_list argp; | 574 | va_list argp; |
574 | va_start(argp, em); | 575 | va_start(argp, em); |
575 | if (curr_funcisL(L)) L->top = curr_topL(L); | 576 | if (curr_funcisL(L)) L->top = curr_topL(L); |
576 | msg = lj_str_pushvf(L, err2msg(em), argp); | 577 | msg = lj_strfmt_pushvf(L, err2msg(em), argp); |
577 | va_end(argp); | 578 | va_end(argp); |
578 | lj_debug_addloc(L, msg, L->base-1, NULL); | 579 | lj_debug_addloc(L, msg, L->base-1, NULL); |
579 | lj_err_run(L); | 580 | lj_err_run(L); |
@@ -591,11 +592,11 @@ LJ_NOINLINE void lj_err_lex(lua_State *L, GCstr *src, const char *tok, | |||
591 | { | 592 | { |
592 | char buff[LUA_IDSIZE]; | 593 | char buff[LUA_IDSIZE]; |
593 | const char *msg; | 594 | const char *msg; |
594 | lj_debug_shortname(buff, src); | 595 | lj_debug_shortname(buff, src, line); |
595 | msg = lj_str_pushvf(L, err2msg(em), argp); | 596 | msg = lj_strfmt_pushvf(L, err2msg(em), argp); |
596 | msg = lj_str_pushf(L, "%s:%d: %s", buff, line, msg); | 597 | msg = lj_strfmt_pushf(L, "%s:%d: %s", buff, line, msg); |
597 | if (tok) | 598 | if (tok) |
598 | lj_str_pushf(L, err2msg(LJ_ERR_XNEAR), msg, tok); | 599 | lj_strfmt_pushf(L, err2msg(LJ_ERR_XNEAR), msg, tok); |
599 | lj_err_throw(L, LUA_ERRSYNTAX); | 600 | lj_err_throw(L, LUA_ERRSYNTAX); |
600 | } | 601 | } |
601 | 602 | ||
@@ -679,7 +680,7 @@ LJ_NOINLINE void lj_err_callerv(lua_State *L, ErrMsg em, ...) | |||
679 | const char *msg; | 680 | const char *msg; |
680 | va_list argp; | 681 | va_list argp; |
681 | va_start(argp, em); | 682 | va_start(argp, em); |
682 | msg = lj_str_pushvf(L, err2msg(em), argp); | 683 | msg = lj_strfmt_pushvf(L, err2msg(em), argp); |
683 | va_end(argp); | 684 | va_end(argp); |
684 | lj_err_callermsg(L, msg); | 685 | lj_err_callermsg(L, msg); |
685 | } | 686 | } |
@@ -699,9 +700,9 @@ LJ_NORET LJ_NOINLINE static void err_argmsg(lua_State *L, int narg, | |||
699 | if (narg < 0 && narg > LUA_REGISTRYINDEX) | 700 | if (narg < 0 && narg > LUA_REGISTRYINDEX) |
700 | narg = (int)(L->top - L->base) + narg + 1; | 701 | narg = (int)(L->top - L->base) + narg + 1; |
701 | if (ftype && ftype[3] == 'h' && --narg == 0) /* Check for "method". */ | 702 | if (ftype && ftype[3] == 'h' && --narg == 0) /* Check for "method". */ |
702 | msg = lj_str_pushf(L, err2msg(LJ_ERR_BADSELF), fname, msg); | 703 | msg = lj_strfmt_pushf(L, err2msg(LJ_ERR_BADSELF), fname, msg); |
703 | else | 704 | else |
704 | msg = lj_str_pushf(L, err2msg(LJ_ERR_BADARG), narg, fname, msg); | 705 | msg = lj_strfmt_pushf(L, err2msg(LJ_ERR_BADARG), narg, fname, msg); |
705 | lj_err_callermsg(L, msg); | 706 | lj_err_callermsg(L, msg); |
706 | } | 707 | } |
707 | 708 | ||
@@ -711,7 +712,7 @@ LJ_NOINLINE void lj_err_argv(lua_State *L, int narg, ErrMsg em, ...) | |||
711 | const char *msg; | 712 | const char *msg; |
712 | va_list argp; | 713 | va_list argp; |
713 | va_start(argp, em); | 714 | va_start(argp, em); |
714 | msg = lj_str_pushvf(L, err2msg(em), argp); | 715 | msg = lj_strfmt_pushvf(L, err2msg(em), argp); |
715 | va_end(argp); | 716 | va_end(argp); |
716 | err_argmsg(L, narg, msg); | 717 | err_argmsg(L, narg, msg); |
717 | } | 718 | } |
@@ -727,7 +728,7 @@ LJ_NOINLINE void lj_err_argtype(lua_State *L, int narg, const char *xname) | |||
727 | { | 728 | { |
728 | TValue *o = narg < 0 ? L->top + narg : L->base + narg-1; | 729 | TValue *o = narg < 0 ? L->top + narg : L->base + narg-1; |
729 | const char *tname = o < L->top ? lj_typename(o) : lj_obj_typename[0]; | 730 | const char *tname = o < L->top ? lj_typename(o) : lj_obj_typename[0]; |
730 | const char *msg = lj_str_pushf(L, err2msg(LJ_ERR_BADTYPE), xname, tname); | 731 | const char *msg = lj_strfmt_pushf(L, err2msg(LJ_ERR_BADTYPE), xname, tname); |
731 | err_argmsg(L, narg, msg); | 732 | err_argmsg(L, narg, msg); |
732 | } | 733 | } |
733 | 734 | ||
@@ -777,7 +778,7 @@ LUALIB_API int luaL_error(lua_State *L, const char *fmt, ...) | |||
777 | const char *msg; | 778 | const char *msg; |
778 | va_list argp; | 779 | va_list argp; |
779 | va_start(argp, fmt); | 780 | va_start(argp, fmt); |
780 | msg = lj_str_pushvf(L, fmt, argp); | 781 | msg = lj_strfmt_pushvf(L, fmt, argp); |
781 | va_end(argp); | 782 | va_end(argp); |
782 | lj_err_callermsg(L, msg); | 783 | lj_err_callermsg(L, msg); |
783 | return 0; /* unreachable */ | 784 | return 0; /* unreachable */ |