From 592a309177edc52847b1196969ad6d49ba21f4fb Mon Sep 17 00:00:00 2001
From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Wed, 5 Dec 2001 18:15:18 -0200
Subject: tag system replaced by event tables

---
 ltests.c | 61 +++++++++++++++++++++++--------------------------------------
 1 file changed, 23 insertions(+), 38 deletions(-)

(limited to 'ltests.c')

diff --git a/ltests.c b/ltests.c
index e51ff23f..282c58b6 100644
--- a/ltests.c
+++ b/ltests.c
@@ -1,5 +1,5 @@
 /*
-** $Id: ltests.c,v 1.96 2001/11/06 21:41:43 roberto Exp $
+** $Id: ltests.c,v 1.1 2001/11/29 22:14:34 rieru Exp rieru $
 ** Internal Module for Debugging of the Lua Implementation
 ** See Copyright Notice in lua.h
 */
@@ -240,13 +240,13 @@ static int mem_query (lua_State *L) {
 
 static int hash_query (lua_State *L) {
   if (lua_isnull(L, 2)) {
-    luaL_arg_check(L, lua_tag(L, 1) == LUA_TSTRING, 1, "string expected");
+    luaL_arg_check(L, lua_type(L, 1) == LUA_TSTRING, 1, "string expected");
     lua_pushnumber(L, tsvalue(luaA_index(L, 1))->tsv.hash);
   }
   else {
     TObject *o = luaA_index(L, 1);
     Table *t;
-    luaL_check_rawtype(L, 2, LUA_TTABLE);
+    luaL_check_type(L, 2, LUA_TTABLE);
     t = hvalue(luaA_index(L, 2));
     lua_pushnumber(L, luaH_mainposition(t, o) - t->node);
   }
@@ -257,7 +257,7 @@ static int hash_query (lua_State *L) {
 static int table_query (lua_State *L) {
   const Table *t;
   int i = luaL_opt_int(L, 2, -1);
-  luaL_check_rawtype(L, 1, LUA_TTABLE);
+  luaL_check_type(L, 1, LUA_TTABLE);
   t = hvalue(luaA_index(L, 1));
   if (i == -1) {
     lua_pushnumber(L, t->sizearray);
@@ -333,6 +333,18 @@ static int unref (lua_State *L) {
   return 0;
 }
 
+static int eventtable (lua_State *L) {
+  luaL_check_any(L, 1);
+  if (lua_isnull(L, 2))
+    lua_geteventtable(L, 1);
+  else {
+    lua_settop(L, 2);
+    luaL_check_type(L, 2, LUA_TTABLE);
+    lua_seteventtable(L, 1);
+  }
+  return 1;
+}
+
 static int newuserdata (lua_State *L) {
   size_t size = luaL_check_int(L, 1);
   char *p = cast(char *, lua_newuserdata(L, size));
@@ -345,24 +357,13 @@ static int newuserdatabox (lua_State *L) {
   return 1;
 }
 
-static int settag (lua_State *L) {
-  luaL_check_any(L, 1);
-  lua_pushvalue(L, 1);  /* push value */
-  lua_settag(L, luaL_check_int(L, 2));
-  return 1;  /* return value */
-}
 
 static int udataval (lua_State *L) {
-  luaL_check_rawtype(L, 1, LUA_TUSERDATA);
+  luaL_check_type(L, 1, LUA_TUSERDATA);
   lua_pushnumber(L, cast(int, lua_touserdata(L, 1)));
   return 1;
 }
 
-static int newtag (lua_State *L) {
-  lua_pushnumber(L, lua_newtype(L, lua_tostring(L, 1),
-                                   cast(int, lua_tonumber(L, 2))));
-  return 1;
-}
 
 static int doonnewstack (lua_State *L) {
   lua_State *L1 = lua_newthread(L, luaL_check_int(L, 1));
@@ -435,16 +436,6 @@ static int doremote (lua_State *L) {
   }
 }
 
-static int settagmethod (lua_State *L) {
-  int tag = luaL_check_int(L, 1);
-  const char *event = luaL_check_string(L, 2);
-  luaL_check_any(L, 3);
-  lua_gettagmethod(L, tag, event);
-  lua_pushvalue(L, 3);
-  lua_settagmethod(L, tag, event);
-  return 1;
-}
-
 
 static int log2_aux (lua_State *L) {
   lua_pushnumber(L, luaO_log2(luaL_check_int(L, 1)));
@@ -614,18 +605,14 @@ static int testC (lua_State *L) {
     else if EQ("dostring") {
       lua_dostring(L, luaL_check_string(L, getnum));
     }
-    else if EQ("settagmethod") {
-      int tag = getnum;
-      const char *event = getname;
-      lua_settagmethod(L, tag, event);
+    else if EQ("seteventtable") {
+      lua_seteventtable(L, getnum);
     }
-    else if EQ("gettagmethod") {
-      int tag = getnum;
-      const char *event = getname;
-      lua_gettagmethod(L, tag, event);
+    else if EQ("geteventtable") {
+      lua_geteventtable(L, getnum);
     }
     else if EQ("type") {
-      lua_pushstring(L, lua_type(L, getnum));
+      lua_pushstring(L, lua_typename(L, lua_type(L, getnum)));
     }
     else luaL_verror(L, "unknown instruction %.30s", buff);
   }
@@ -651,16 +638,14 @@ static const struct luaL_reg tests_funcs[] = {
   {"unref", unref},
   {"d2s", d2s},
   {"s2d", s2d},
+  {"eventtable", eventtable},
   {"newuserdata", newuserdata},
   {"newuserdatabox", newuserdatabox},
-  {"settag", settag},
   {"udataval", udataval},
-  {"newtag", newtag},
   {"doonnewstack", doonnewstack},
   {"newstate", newstate},
   {"closestate", closestate},
   {"doremote", doremote},
-  {"settagmethod", settagmethod},
   {"log2", log2_aux},
   {"totalmem", mem_query}
 };
-- 
cgit v1.2.3-55-g6feb