From d394d5536aeccb937fb6fd8e7476b08d672bc892 Mon Sep 17 00:00:00 2001
From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Mon, 5 Apr 2010 13:26:37 -0300
Subject: new macro 'eqstr'

---
 ldebug.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

(limited to 'ldebug.c')

diff --git a/ldebug.c b/ldebug.c
index 08560acd..43b532dd 100644
--- a/ldebug.c
+++ b/ldebug.c
@@ -1,5 +1,5 @@
 /*
-** $Id: ldebug.c,v 2.66 2010/03/12 19:14:06 roberto Exp roberto $
+** $Id: ldebug.c,v 2.67 2010/03/13 15:55:42 roberto Exp roberto $
 ** Debug Interface
 ** See Copyright Notice in lua.h
 */
@@ -300,11 +300,11 @@ static const char *getobjname (lua_State *L, CallInfo *ci, int reg,
         if (reg == a) {
           int k = GETARG_C(i);  /* key index */
           int t = GETARG_B(i);
-          const char *tabname = (op == OP_GETTABLE)
-                                ? luaF_getlocalname(p, t + 1, pc)
-                                : getstr(p->upvalues[t].name);
+          const char *vn = (op == OP_GETTABLE)  /* name of indexed variable */ 
+                           ? luaF_getlocalname(p, t + 1, pc)
+                           : getstr(p->upvalues[t].name);
           kname(p, k, a, what, name);
-          what = (tabname == getstr(G(L)->envn)) ? "global" : "field";
+          what = (vn && strcmp(vn, "_ENV") == 0) ? "global" : "field";
         }
         break;
       }
@@ -427,7 +427,7 @@ static const char *getupvalname (CallInfo *ci, const TValue *o,
   LClosure *c = &ci_func(ci)->l;
   int i;
   for (i = 0; i < c->nupvalues; i++) {
-    if (c->upvals[i]->v == o) {
+    if (eqstr(c->upvals[i]->v, o)) {
       *name = getstr(c->p->upvalues[i].name);
       return "upvalue";
     }
-- 
cgit v1.2.3-55-g6feb