diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-04-17 14:58:55 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2025-04-17 14:58:55 -0300 |
| commit | 50fd8d03c33bbe52ac5b34c4eb748197b349cedd (patch) | |
| tree | ef63c627346c7609fea578cd9d8399ae500c00b2 /lcode.c | |
| parent | 3dbb1a4b894c0744a331d4319d8d1704dc4ad943 (diff) | |
| download | lua-50fd8d03c33bbe52ac5b34c4eb748197b349cedd.tar.gz lua-50fd8d03c33bbe52ac5b34c4eb748197b349cedd.tar.bz2 lua-50fd8d03c33bbe52ac5b34c4eb748197b349cedd.zip | |
Function 'luaK_semerror' made vararg
All calls to 'luaK_semerror' were using 'luaO_pushfstring' to create
the error messages.
Diffstat (limited to '')
| -rw-r--r-- | lcode.c | 9 |
1 files changed, 8 insertions, 1 deletions
| @@ -40,7 +40,14 @@ static int codesJ (FuncState *fs, OpCode o, int sj, int k); | |||
| 40 | 40 | ||
| 41 | 41 | ||
| 42 | /* semantic error */ | 42 | /* semantic error */ |
| 43 | l_noret luaK_semerror (LexState *ls, const char *msg) { | 43 | l_noret luaK_semerror (LexState *ls, const char *fmt, ...) { |
| 44 | const char *msg; | ||
| 45 | va_list argp; | ||
| 46 | va_start(argp, fmt); | ||
| 47 | msg = luaO_pushvfstring(ls->L, fmt, argp); | ||
| 48 | va_end(argp); | ||
| 49 | if (msg == NULL) /* error? */ | ||
| 50 | luaD_throw(ls->L, LUA_ERRMEM); | ||
| 44 | ls->t.token = 0; /* remove "near <token>" from final message */ | 51 | ls->t.token = 0; /* remove "near <token>" from final message */ |
| 45 | luaX_syntaxerror(ls, msg); | 52 | luaX_syntaxerror(ls, msg); |
| 46 | } | 53 | } |
