summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-07-29 18:11:10 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-07-29 18:11:10 -0300
commit72a1d81b510797759a8a5b9e701eb4b791aa8a84 (patch)
treed7f47405ff87df5e3c68f77dfcbf473763164218
parent2c580a0afb8dbaf7070a9819b7e81ebde5737ff9 (diff)
downloadlua-github-72a1d81b510797759a8a5b9e701eb4b791aa8a84.tar.gz
bug: lua_getlocal breaks when called with a CFunction.
-rw-r--r--bugs2
-rw-r--r--opcode.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/bugs b/bugs
index f968fb93..c8bc6efc 100644
--- a/bugs
+++ b/bugs
@@ -1,3 +1,3 @@
- arquivo comecando com # fica com numero da linha defazado (inout.c 2.69)
- LUA_COMPAT2_5 escrito errado em opcode.c (faltou o LUA_)
--
+- opcode.c
diff --git a/opcode.c b/opcode.c
index c7c972fd..3de1745b 100644
--- a/opcode.c
+++ b/opcode.c
@@ -3,7 +3,7 @@
** TecCGraf - PUC-Rio
*/
-char *rcs_opcode="$Id: opcode.c,v 4.17 1997/07/04 14:55:37 roberto Exp roberto $";
+char *rcs_opcode="$Id: opcode.c,v 4.18 1997/07/29 13:35:06 roberto Exp roberto $";
#include <setjmp.h>
#include <stdio.h>
@@ -538,6 +538,9 @@ int lua_currentline (lua_Function func)
lua_Object lua_getlocal (lua_Function func, int local_number, char **name)
{
TObject *f = luaI_Address(func);
+ /* check whether func is a Lua function */
+ if (ttype(f) != LUA_T_MARK && ttype(f) != LUA_T_FUNCTION)
+ return LUA_NOOBJECT;
*name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func));
if (*name)
{