aboutsummaryrefslogtreecommitdiff
path: root/ltm.c
diff options
context:
space:
mode:
Diffstat (limited to 'ltm.c')
-rw-r--r--ltm.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ltm.c b/ltm.c
index 4b66124f..1552c84b 100644
--- a/ltm.c
+++ b/ltm.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltm.c,v 1.75 2001/07/23 19:56:00 roberto Exp roberto $ 2** $Id: ltm.c,v 1.76 2001/07/24 22:39:34 roberto Exp roberto $
3** Tag methods 3** Tag methods
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -84,11 +84,13 @@ int luaT_newtag (lua_State *L, const l_char *name, int basictype) {
84 MAX_INT, l_s("tag table overflow")); 84 MAX_INT, l_s("tag table overflow"));
85 tag = G(L)->ntag; 85 tag = G(L)->ntag;
86 if (name) { 86 if (name) {
87 TObject *v; 87 const TObject *v;
88 TObject otag;
88 ts = luaS_new(L, name); 89 ts = luaS_new(L, name);
89 v = luaH_setstr(L, G(L)->type2tag, ts); 90 v = luaH_getstr(G(L)->type2tag, ts);
90 if (ttype(v) == LUA_TNUMBER) return (int)nvalue(v); 91 if (ttype(v) == LUA_TNUMBER) return (int)nvalue(v);
91 setnvalue(v, tag); 92 setnvalue(&otag, tag);
93 luaH_setstr(L, G(L)->type2tag, ts, &otag);
92 } 94 }
93 for (i=0; i<TM_N; i++) 95 for (i=0; i<TM_N; i++)
94 luaT_gettm(G(L), tag, i) = NULL; 96 luaT_gettm(G(L), tag, i) = NULL;