From ab75bd23eef194c2aa9123765e3d13c820cf8af0 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 28 Sep 2009 09:37:17 -0300 Subject: handle extended opcodes (with OP_EXTRAARG) when checking metamethod calls --- ldebug.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ldebug.c b/ldebug.c index 8e63a4f9..00ab2284 100644 --- a/ldebug.c +++ b/ldebug.c @@ -1,5 +1,5 @@ /* -** $Id: ldebug.c,v 2.53 2009/08/07 16:17:41 roberto Exp roberto $ +** $Id: ldebug.c,v 2.54 2009/09/23 20:33:05 roberto Exp roberto $ ** Debug Interface ** See Copyright Notice in lua.h */ @@ -386,6 +386,8 @@ static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name) { return NULL; /* calling function is not Lua (or is unknown) */ ci = ci->previous; /* calling function */ i = ci_func(ci)->l.p->code[currentpc(ci)]; + if (GET_OPCODE(i) == OP_EXTRAARG) /* extra argument? */ + i = ci_func(ci)->l.p->code[currentpc(ci) - 1]; /* get 'real' instruction */ switch (GET_OPCODE(i)) { case OP_CALL: case OP_TAILCALL: -- cgit v1.2.3-55-g6feb