diff --git a/ltable.c b/ltable.c index faae28cf..ba0919f3 100644 --- a/ltable.c +++ b/ltable.c @@ -1,5 +1,5 @@ /* -** $Id: ltable.c,v 1.110 2002/06/13 13:39:55 roberto Exp roberto $ +** $Id: ltable.c,v 1.111 2002/06/24 20:18:38 roberto Exp roberto $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ @@ -46,8 +46,11 @@ #define toobig(x) ((((x)-1) >> MAXBITS) != 0) +/* function to convert a lua_Number to int (with any rounding method) */ +#ifndef lua_number2int +#define lua_number2int(i,n) ((i)=(int)(n)) +#endif -#define TagDefault LUA_TTABLE #define hashnum(t,n) \ @@ -68,8 +71,11 @@ */ Node *luaH_mainposition (const Table *t, const TObject *key) { switch (ttype(key)) { - case LUA_TNUMBER: - return hashnum(t, nvalue(key)); + case LUA_TNUMBER: { + int ikey; + lua_number2int(ikey, nvalue(key)); + return hashnum(t, ikey); + } case LUA_TSTRING: return hashstr(t, tsvalue(key)); case LUA_TBOOLEAN: diff --git a/lua.h b/lua.h index 6cbf9497..014896b0 100644 --- a/lua.h +++ b/lua.h @@ -1,5 +1,5 @@ /* -** $Id: lua.h,v 1.143 2002/06/25 19:18:49 roberto Exp roberto $ +** $Id: lua.h,v 1.144 2002/06/26 19:28:44 roberto Exp roberto $ ** Lua - An Extensible Extension Language ** Tecgraf: Computer Graphics Technology Group, PUC-Rio, Brazil ** http://www.lua.org mailto:info@lua.org @@ -301,12 +301,6 @@ LUA_API int lua_pushupvalues (lua_State *L); #define LUA_NUMBER_FMT "%.16g" #endif - -/* function to convert a lua_Number to int (with any rounding method) */ -#ifndef lua_number2int -#define lua_number2int(i,n) ((i)=(int)(n)) -#endif - /* }====================================================================== */