Luna 四测试用户数据

lua-users home
wiki

void *luaL_testudata (lua_State *L, int ud, const char *tname) { 
  void *p = lua_touserdata(L, ud); 
  if (p != NULL) {  /* value is a userdata? */ 
    if (lua_getmetatable(L, ud)) {  /* does it have a metatable? */ 
      lua_getfield(L, LUA_REGISTRYINDEX, tname);  /* get correct metatable */ 
      if (lua_rawequal(L, -1, -2)) {  /* does it have the correct mt? */ 
        lua_pop(L, 2);  /* remove both metatables */ 
        return p; 
      } 
    } 
  } 
  return NULL;  /* to avoid warnings */ 
}

最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2009 年 1 月 11 日凌晨 4:40 GMT (差异)