Selaa lähdekoodia

In 'lua_checkmemory', userdata can be gray, too

Since commit ca6fe7449a74, userdata with uservalues can be gray
and can belong to gray lists ('gclist').
Roberto Ierusalimschy 5 vuotta sitten
vanhempi
commit
993c58fde3
1 muutettua tiedostoa jossa 4 lisäystä ja 0 poistoa
  1. 4 0
      ltests.c

+ 4 - 0
ltests.c

@@ -519,6 +519,10 @@ static void checkgraylist (global_State *g, GCObject *o) {
       case LUA_VCCL: o = gco2ccl(o)->gclist; break;
       case LUA_VTHREAD: o = gco2th(o)->gclist; break;
       case LUA_VPROTO: o = gco2p(o)->gclist; break;
+      case LUA_VUSERDATA:
+        lua_assert(gco2u(o)->nuvalue > 0);
+        o = gco2u(o)->gclist;
+        break;
       default: lua_assert(0);  /* other objects cannot be in a gray list */
     }
   }