Przeglądaj źródła

IPC: Don't create an unnecessary port when using PushIpcInterface outside of a domain.

Subv 8 lat temu
rodzic
commit
67c43e9200
1 zmienionych plików z 5 dodań i 4 usunięć
  1. 5 4
      src/core/hle/ipc_helpers.h

+ 5 - 4
src/core/hle/ipc_helpers.h

@@ -118,10 +118,11 @@ public:
         if (context->IsDomain()) {
         if (context->IsDomain()) {
             context->AddDomainObject(std::move(iface));
             context->AddDomainObject(std::move(iface));
         } else {
         } else {
-            auto port = iface->CreatePort();
-            auto session = port->Connect();
-            ASSERT(session.Succeeded());
-            context->AddMoveObject(std::move(session).Unwrap());
+            auto sessions = Kernel::ServerSession::CreateSessionPair(iface->GetServiceName());
+            auto server = std::get<Kernel::SharedPtr<Kernel::ServerSession>>(sessions);
+            auto client = std::get<Kernel::SharedPtr<Kernel::ClientSession>>(sessions);
+            iface->ClientConnected(server);
+            context->AddMoveObject(std::move(client));
         }
         }
     }
     }