Browse Source

From Lua 5.2: debug.getupvalue() returns "" for C function upvalues.

Mike Pall 13 years ago
parent
commit
998c656dc4
1 changed files with 9 additions and 9 deletions
  1. 9 9
      src/lib_debug.c

+ 9 - 9
src/lib_debug.c

@@ -176,15 +176,15 @@ LJLIB_CF(debug_setlocal)
 static int debug_getupvalue(lua_State *L, int get)
 {
   int32_t n = lj_lib_checkint(L, 2);
-  if (isluafunc(lj_lib_checkfunc(L, 1))) {
-    const char *name = get ? lua_getupvalue(L, 1, n) : lua_setupvalue(L, 1, n);
-    if (name) {
-      lua_pushstring(L, name);
-      if (!get) return 1;
-      copyTV(L, L->top, L->top-2);
-      L->top++;
-      return 2;
-    }
+  const char *name;
+  lj_lib_checkfunc(L, 1);
+  name = get ? lua_getupvalue(L, 1, n) : lua_setupvalue(L, 1, n);
+  if (name) {
+    lua_pushstring(L, name);
+    if (!get) return 1;
+    copyTV(L, L->top, L->top-2);
+    L->top++;
+    return 2;
   }
   return 0;
 }