Better handling of size limit when resizing a table

Avoid silent conversions from int to unsigned int when calling
'luaH_resize'; avoid silent conversions from lua_Integer to int in
'table.create'; MAXASIZE corrected for the new implementation of arrays;
'luaH_resize' checks explicitly whether new size respects MAXASIZE.
(Even constructors were bypassing that check.)
This commit is contained in:
Roberto Ierusalimschy
2024-02-07 13:39:54 -03:00
parent c31d6774ac
commit 0c9bec0d38
6 changed files with 53 additions and 37 deletions

2
lapi.c
View File

@@ -781,7 +781,7 @@ LUA_API int lua_rawgetp (lua_State *L, int idx, const void *p) {
}
LUA_API void lua_createtable (lua_State *L, int narray, int nrec) {
LUA_API void lua_createtable (lua_State *L, unsigned narray, unsigned nrec) {
Table *t;
lua_lock(L);
t = luaH_new(L);