aboutsummaryrefslogtreecommitdiff
path: root/ltable.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2002-07-01 16:31:10 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2002-07-01 16:31:10 -0300
commit68ee518e816c87dbb376dc38d11d1b47dfe2b53e (patch)
tree0253714c4b62b29993990db1b68add6f4e36c204 /ltable.c
parent76a73cb2eef71eac3c93e9263443131164ee9fb9 (diff)
downloadlua-68ee518e816c87dbb376dc38d11d1b47dfe2b53e.tar.gz
lua-68ee518e816c87dbb376dc38d11d1b47dfe2b53e.tar.bz2
lua-68ee518e816c87dbb376dc38d11d1b47dfe2b53e.zip
only tables need `lua_number2int'
Diffstat (limited to 'ltable.c')
-rw-r--r--ltable.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/ltable.c b/ltable.c
index faae28cf..ba0919f3 100644
--- a/ltable.c
+++ b/ltable.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltable.c,v 1.110 2002/06/13 13:39:55 roberto Exp roberto $ 2** $Id: ltable.c,v 1.111 2002/06/24 20:18:38 roberto Exp roberto $
3** Lua tables (hash) 3** Lua tables (hash)
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -46,8 +46,11 @@
46#define toobig(x) ((((x)-1) >> MAXBITS) != 0) 46#define toobig(x) ((((x)-1) >> MAXBITS) != 0)
47 47
48 48
49/* function to convert a lua_Number to int (with any rounding method) */
50#ifndef lua_number2int
51#define lua_number2int(i,n) ((i)=(int)(n))
52#endif
49 53
50#define TagDefault LUA_TTABLE
51 54
52 55
53#define hashnum(t,n) \ 56#define hashnum(t,n) \
@@ -68,8 +71,11 @@
68*/ 71*/
69Node *luaH_mainposition (const Table *t, const TObject *key) { 72Node *luaH_mainposition (const Table *t, const TObject *key) {
70 switch (ttype(key)) { 73 switch (ttype(key)) {
71 case LUA_TNUMBER: 74 case LUA_TNUMBER: {
72 return hashnum(t, nvalue(key)); 75 int ikey;
76 lua_number2int(ikey, nvalue(key));
77 return hashnum(t, ikey);
78 }
73 case LUA_TSTRING: 79 case LUA_TSTRING:
74 return hashstr(t, tsvalue(key)); 80 return hashstr(t, tsvalue(key));
75 case LUA_TBOOLEAN: 81 case LUA_TBOOLEAN: