aboutsummaryrefslogtreecommitdiff
path: root/src/lj_err.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_err.c')
-rw-r--r--src/lj_err.c23
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 */