aboutsummaryrefslogtreecommitdiff
path: root/hash.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1994-11-07 14:34:44 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1994-11-07 14:34:44 -0200
commitd95a8b312166752e2211678b33514edb1d68a0a6 (patch)
tree87a7180705c1c5e6db71831fb8cb49ce8980f4d0 /hash.c
parent9ffba7a3dbdfa68595cd8cec26bd99689ce5fd08 (diff)
downloadlua-d95a8b312166752e2211678b33514edb1d68a0a6.tar.gz
lua-d95a8b312166752e2211678b33514edb1d68a0a6.tar.bz2
lua-d95a8b312166752e2211678b33514edb1d68a0a6.zip
new API: lua_Object now is an integer
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/hash.c b/hash.c
index e0df91cc..dd7db8f5 100644
--- a/hash.c
+++ b/hash.c
@@ -3,7 +3,7 @@
3** hash manager for lua 3** hash manager for lua
4*/ 4*/
5 5
6char *rcs_hash="$Id: hash.c,v 2.12 1994/11/03 22:20:15 roberto Exp $"; 6char *rcs_hash="$Id: hash.c,v 2.13 1994/11/07 15:19:51 roberto Exp roberto $";
7 7
8#include <string.h> 8#include <string.h>
9#include <stdlib.h> 9#include <stdlib.h>
@@ -293,29 +293,29 @@ static void hashnext (Hash *t, int i)
293 return; 293 return;
294 } 294 }
295 } 295 }
296 lua_pushobject(ref(node(t,i))); 296 luaI_pushobject(ref(node(t,i)));
297 lua_pushobject(val(node(t,i))); 297 luaI_pushobject(val(node(t,i)));
298} 298}
299 299
300void lua_next (void) 300void lua_next (void)
301{ 301{
302 Hash *t; 302 Hash *t;
303 Object *o = lua_getparam (1); 303 lua_Object o = lua_getparam(1);
304 Object *r = lua_getparam (2); 304 lua_Object r = lua_getparam(2);
305 if (o == NULL || r == NULL) 305 if (o == 0 || r == 0)
306 lua_error ("too few arguments to function `next'"); 306 lua_error ("too few arguments to function `next'");
307 if (lua_getparam (3) != NULL) 307 if (lua_getparam(3) != 0)
308 lua_error ("too many arguments to function `next'"); 308 lua_error ("too many arguments to function `next'");
309 if (tag(o) != LUA_T_ARRAY) 309 if (!lua_istable(o))
310 lua_error ("first argument of function `next' is not a table"); 310 lua_error ("first argument of function `next' is not a table");
311 t = avalue(o); 311 t = avalue(luaI_Address(o));
312 if (tag(r) == LUA_T_NIL) 312 if (lua_isnil(r))
313 { 313 {
314 hashnext(t, 0); 314 hashnext(t, 0);
315 } 315 }
316 else 316 else
317 { 317 {
318 int h = present (t, r); 318 int h = present (t, luaI_Address(r));
319 hashnext(t, h+1); 319 hashnext(t, h+1);
320 } 320 }
321} 321}