commit b9c9ccfbb4ed9c6cf6177d20cfd376a0fcb7a959
parent b94110a68f0ca5740b5e09c04a8049fd451a2b7a
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Mon, 4 Jan 1999 10:54:11 -0200
function "move" for tables is better implemented with some "inside
information".
Diffstat:
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/ltable.c b/ltable.c
@@ -1,5 +1,5 @@
/*
-** $Id: ltable.c,v 1.15 1998/08/11 16:38:34 roberto Exp roberto $
+** $Id: ltable.c,v 1.16 1998/12/30 13:14:46 roberto Exp $
** Lua tables (hash)
** See Copyright Notice in lua.h
*/
@@ -223,3 +223,13 @@ TObject *luaH_getint (Hash *t, int ref) {
return luaH_get(t, &index);
}
+
+void luaH_move (Hash *t, int from, int to) {
+ TObject index;
+ TObject *toadd;
+ ttype(&index) = LUA_T_NUMBER;
+ nvalue(&index) = to;
+ toadd = luaH_set(t, &index);
+ nvalue(&index) = from;
+ *toadd = *luaH_get(t, &index);
+}
diff --git a/ltable.h b/ltable.h
@@ -1,5 +1,5 @@
/*
-** $Id: ltable.h,v 1.6 1998/07/12 16:15:19 roberto Exp roberto $
+** $Id: ltable.h,v 1.7 1998/12/30 13:14:46 roberto Exp $
** Lua tables (hash)
** See Copyright Notice in lua.h
*/
@@ -22,6 +22,7 @@ TObject *luaH_set (Hash *t, TObject *ref);
Node *luaH_next (Hash *t, TObject *r);
void luaH_setint (Hash *t, int ref, TObject *val);
TObject *luaH_getint (Hash *t, int ref);
+void luaH_move (Hash *t, int from, int to);
#endif