aboutsummaryrefslogtreecommitdiff
path: root/ltests.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-06-10 12:09:35 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-06-10 12:09:35 -0300
commit94b503d95ef00f1e38b58b024ef45bf8973a8746 (patch)
treec713558a386934bc1d251f064c8d9fae1fb725c0 /ltests.c
parentbdc85357aa41a9610498232c2cffe7aa191e5cf6 (diff)
downloadlua-94b503d95ef00f1e38b58b024ef45bf8973a8746.tar.gz
lua-94b503d95ef00f1e38b58b024ef45bf8973a8746.tar.bz2
lua-94b503d95ef00f1e38b58b024ef45bf8973a8746.zip
Encoding of table indices (hres) must use C indices
As the encoding of array indices is (~index), 0 is encoded as -1 and INT_MAX is encoded as INT_MIN.
Diffstat (limited to 'ltests.c')
-rw-r--r--ltests.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ltests.c b/ltests.c
index 4780673e..57df10e1 100644
--- a/ltests.c
+++ b/ltests.c
@@ -365,7 +365,7 @@ static void checktable (global_State *g, Table *h) {
365 checkobjrefN(g, hgc, h->metatable); 365 checkobjrefN(g, hgc, h->metatable);
366 for (i = 0; i < asize; i++) { 366 for (i = 0; i < asize; i++) {
367 TValue aux; 367 TValue aux;
368 arr2obj(h, i + 1, &aux); 368 arr2obj(h, i, &aux);
369 checkvalref(g, hgc, &aux); 369 checkvalref(g, hgc, &aux);
370 } 370 }
371 for (n = gnode(h, 0); n < limit; n++) { 371 for (n = gnode(h, 0); n < limit; n++) {
@@ -1010,7 +1010,7 @@ static int table_query (lua_State *L) {
1010 } 1010 }
1011 else if (cast_uint(i) < asize) { 1011 else if (cast_uint(i) < asize) {
1012 lua_pushinteger(L, i); 1012 lua_pushinteger(L, i);
1013 arr2obj(t, i + 1, s2v(L->top.p)); 1013 arr2obj(t, i, s2v(L->top.p));
1014 api_incr_top(L); 1014 api_incr_top(L);
1015 lua_pushnil(L); 1015 lua_pushnil(L);
1016 } 1016 }