From af850484a9e01b46b04e4c666f9a9e91308d81c7 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 1 Dec 2003 16:22:56 -0200 Subject: default metatable can be NULL --- ltm.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'ltm.c') diff --git a/ltm.c b/ltm.c index 5687e28b..b8fbb1f9 100644 --- a/ltm.c +++ b/ltm.c @@ -1,5 +1,5 @@ /* -** $Id: ltm.c,v 1.105 2002/12/04 17:38:31 roberto Exp roberto $ +** $Id: ltm.c,v 1.106 2003/04/03 13:35:34 roberto Exp roberto $ ** Tag methods ** See Copyright Notice in lua.h */ @@ -57,14 +57,17 @@ const TObject *luaT_gettm (Table *events, TMS event, TString *ename) { const TObject *luaT_gettmbyobj (lua_State *L, const TObject *o, TMS event) { - TString *ename = G(L)->tmname[event]; + Table *mt; switch (ttype(o)) { case LUA_TTABLE: - return luaH_getstr(hvalue(o)->metatable, ename); + mt = hvalue(o)->metatable; + break; case LUA_TUSERDATA: - return luaH_getstr(uvalue(o)->uv.metatable, ename); + mt = uvalue(o)->uv.metatable; + break; default: - return &luaO_nilobject; + mt = NULL; } + return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : &luaO_nilobject); } -- cgit v1.2.3-55-g6feb