소스 검색

bug: lua_getlocal breaks when called with a CFunction.

Roberto Ierusalimschy 28 년 전
부모
커밋
72a1d81b51
2개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 1
      bugs
  2. 4 1
      opcode.c

+ 1 - 1
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

+ 4 - 1
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)
   {