commit 9e9e2ea287a24871e6e35faef52ae236bf85f8ae
parent 03d917f229107d788df93c940d87b5908194248a
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Wed, 26 Mar 1997 19:22:21 -0300
BUG: must mark userdata in garbage collection.
Diffstat:
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/table.c b/table.c
@@ -3,7 +3,7 @@
** Module to control static tables
*/
-char *rcs_table="$Id: table.c,v 2.62 1997/03/21 18:52:37 roberto Exp $";
+char *rcs_table="$Id: table.c,v 2.62 1997/03/21 21:39:57 roberto Exp roberto $";
#include "mem.h"
#include "opcode.h"
@@ -128,7 +128,8 @@ static char *lua_travsymbol (int (*fn)(Object *))
*/
int lua_markobject (Object *o)
{/* if already marked, does not change mark value */
- if (ttype(o) == LUA_T_STRING && !tsvalue(o)->marked)
+ if (ttype(o) == LUA_T_USERDATA ||
+ (ttype(o) == LUA_T_STRING && !tsvalue(o)->marked))
tsvalue(o)->marked = 1;
else if (ttype(o) == LUA_T_ARRAY)
lua_hashmark (avalue(o));