aboutsummaryrefslogtreecommitdiff
path: root/hash.c
diff options
context:
space:
mode:
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}