public override bool Equals(object o) { if (o != null && this.GetType() == o.GetType()) { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) { #endif LuaBase rhs = ( LuaBase )o; var L = luaEnv.L; if (L != rhs.luaEnv.L) { return(false); } int top = LuaAPI.lua_gettop(L); LuaAPI.lua_getref(L, rhs.luaReference); LuaAPI.lua_getref(L, luaReference); int equal = LuaAPI.lua_rawequal(L, -1, -2); LuaAPI.lua_settop(L, top); return(equal != 0); #if THREAD_SAFE || HOTFIX_ENABLE } #endif } else { return(false); } }