summaryrefslogtreecommitdiff
path: root/src/lib_table.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib_table.c')
-rw-r--r--src/lib_table.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib_table.c b/src/lib_table.c
index 8ae54167..fab6b1f4 100644
--- a/src/lib_table.c
+++ b/src/lib_table.c
@@ -82,8 +82,10 @@ LJLIB_CF(table_maxn)
82 } 82 }
83 node = noderef(t->node); 83 node = noderef(t->node);
84 for (i = (ptrdiff_t)t->hmask; i >= 0; i--) 84 for (i = (ptrdiff_t)t->hmask; i >= 0; i--)
85 if (tvisnum(&node[i].key) && numV(&node[i].key) > m) 85 if (tvisnumber(&node[i].key)) {
86 m = numV(&node[i].key); 86 lua_Number n = numberVnum(&node[i].key);
87 if (n > m) m = n;
88 }
87 setnumV(L->top-1, m); 89 setnumV(L->top-1, m);
88 return 1; 90 return 1;
89} 91}
@@ -154,7 +156,7 @@ LJLIB_CF(table_concat)
154 cTValue *o; 156 cTValue *o;
155 lua_rawgeti(L, 1, i); 157 lua_rawgeti(L, 1, i);
156 o = L->top-1; 158 o = L->top-1;
157 if (!(tvisstr(o) || tvisnum(o))) 159 if (!(tvisstr(o) || tvisnumber(o)))
158 lj_err_callerv(L, LJ_ERR_TABCAT, typename(o), i); 160 lj_err_callerv(L, LJ_ERR_TABCAT, typename(o), i);
159 luaL_addvalue(&b); 161 luaL_addvalue(&b);
160 if (i++ == e) break; 162 if (i++ == e) break;