diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2020-07-03 11:54:58 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2020-07-03 11:54:58 -0300 |
| commit | ae809e9fd132ab867741a6a777450f9bc0d49be4 (patch) | |
| tree | 402821af72bbf8ee5a5779b48ba978cb6f578416 /lapi.c | |
| parent | e96385adede47a1abf160a41565ec742d3d4e413 (diff) | |
| download | lua-ae809e9fd132ab867741a6a777450f9bc0d49be4.tar.gz lua-ae809e9fd132ab867741a6a777450f9bc0d49be4.tar.bz2 lua-ae809e9fd132ab867741a6a777450f9bc0d49be4.zip | |
'luaV_concat' can "concat" one single value
Several of its callers needed that case and had to do the check
themselves.
Diffstat (limited to 'lapi.c')
| -rw-r--r-- | lapi.c | 8 |
1 files changed, 3 insertions, 5 deletions
| @@ -1239,14 +1239,12 @@ LUA_API void lua_toclose (lua_State *L, int idx) { | |||
| 1239 | LUA_API void lua_concat (lua_State *L, int n) { | 1239 | LUA_API void lua_concat (lua_State *L, int n) { |
| 1240 | lua_lock(L); | 1240 | lua_lock(L); |
| 1241 | api_checknelems(L, n); | 1241 | api_checknelems(L, n); |
| 1242 | if (n >= 2) { | 1242 | if (n > 0) |
| 1243 | luaV_concat(L, n); | 1243 | luaV_concat(L, n); |
| 1244 | } | 1244 | else { /* nothing to concatenate */ |
| 1245 | else if (n == 0) { /* push empty string */ | 1245 | setsvalue2s(L, L->top, luaS_newlstr(L, "", 0)); /* push empty string */ |
| 1246 | setsvalue2s(L, L->top, luaS_newlstr(L, "", 0)); | ||
| 1247 | api_incr_top(L); | 1246 | api_incr_top(L); |
| 1248 | } | 1247 | } |
| 1249 | /* else n == 1; nothing to do */ | ||
| 1250 | luaC_checkGC(L); | 1248 | luaC_checkGC(L); |
| 1251 | lua_unlock(L); | 1249 | lua_unlock(L); |
| 1252 | } | 1250 | } |
