浏览代码

for security reasons, one cannot change the tag of a udata
from Lua.

Roberto Ierusalimschy 28 年之前
父节点
当前提交
ef3c45d523
共有 2 个文件被更改,包括 9 次插入9 次删除
  1. 2 2
      inout.c
  2. 7 7
      manual.tex

+ 2 - 2
inout.c

@@ -5,7 +5,7 @@
 ** Also provides some predefined lua functions.
 */
 
-char *rcs_inout="$Id: inout.c,v 2.67 1997/06/23 18:27:53 roberto Exp roberto $";
+char *rcs_inout="$Id: inout.c,v 2.68 1997/06/26 20:47:43 roberto Exp roberto $";
 
 #include <stdio.h>
 #include <string.h>
@@ -313,7 +313,7 @@ static void luaI_call (void)
 static void luaIl_settag (void)
 {
   lua_Object o = lua_getparam(1);
-  luaL_arg_check(o != LUA_NOOBJECT, 1, NULL);
+  luaL_arg_check(lua_istable(o), 1, "table expected");
   lua_pushobject(o);
   lua_settag(luaL_check_number(2));
 }

+ 7 - 7
manual.tex

@@ -1,4 +1,4 @@
-% $Id: manual.tex,v 2.6 1997/06/26 20:39:10 roberto Exp roberto $
+% $Id: manual.tex,v 2.7 1997/06/27 18:39:34 roberto Exp roberto $
 
 \documentstyle[fullpage,11pt,bnf]{article}
 
@@ -38,7 +38,7 @@ Waldemar Celes
 \tecgraf\ --- Computer Science Department --- PUC-Rio
 }
 
-\date{\small \verb$Date: 1997/06/26 20:39:10 $}
+\date{\small \verb$Date: 1997/06/27 18:39:34 $}
 
 \maketitle
 
@@ -263,7 +263,7 @@ values of type userdata and table can have
 as many different tags as needed \see{tag-method}.
 Tags are created with the function \verb|newtag|,
 and the function \verb|tag| returns the tag of a given value.
-To change the tag of a given userdata or table,
+To change the tag of a given table,
 there is the function \verb|settag| \see{pdf-newtag}.
 
 
@@ -1723,12 +1723,12 @@ This function allows Lua to test the tag of a value \see{TypesSec}.
 It receives one argument, and returns its tag (a number).
 \verb|tag| is equivalent to the API function \verb|lua_tag|.
 
-\subsubsection*{\ff {\tt settag (o, tag)}}\Deffunc{settag}
-This function sets the tag of a given object \see{TypesSec}.
-The object \verb|o| must be a userdata or a table.
+\subsubsection*{\ff {\tt settag (t, tag)}}\Deffunc{settag}
+This function sets the tag of a given table \see{TypesSec}.
 \verb|tag| must be a value created with \verb|newtag|
 \see{pdf-newtag}.
-\verb|settag| is equivalent to the API function \verb|lua_settag|.
+For security reasons,
+it is impossible to change the tag of a userdata from Lua.
 
 \subsubsection*{\ff {\tt assert (v)}}\Deffunc{assert}
 This function issues an {\em ``assertion failed!''} error