浏览代码

function "move" for tables is better implemented with some "inside
information".

Roberto Ierusalimschy 26 年之前
父节点
当前提交
b9c9ccfbb4
共有 2 个文件被更改,包括 13 次插入2 次删除
  1. 11 1
      ltable.c
  2. 2 1
      ltable.h

+ 11 - 1
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);
+}

+ 2 - 1
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