diff options
| author | 2018-01-22 17:35:40 -0500 | |
|---|---|---|
| committer | 2018-01-22 17:35:40 -0500 | |
| commit | 1a9c96e4de6699722ad0fbe511c9868e89d29eee (patch) | |
| tree | ce917b78eef601f6348bf91b786f3d54edab476a /src | |
| parent | IPC: Don't create an unnecessary port when using PushIpcInterface outside of ... (diff) | |
| download | yuzu-1a9c96e4de6699722ad0fbe511c9868e89d29eee.tar.gz yuzu-1a9c96e4de6699722ad0fbe511c9868e89d29eee.tar.xz yuzu-1a9c96e4de6699722ad0fbe511c9868e89d29eee.zip | |
LM: Don't create an unnecessary port in Initialize.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/lm/lm.cpp | 22 | ||||
| -rw-r--r-- | src/core/hle/service/lm/lm.h | 3 |
2 files changed, 10 insertions, 15 deletions
diff --git a/src/core/hle/service/lm/lm.cpp b/src/core/hle/service/lm/lm.cpp index 13c9ee3d3..dd0f75ce1 100644 --- a/src/core/hle/service/lm/lm.cpp +++ b/src/core/hle/service/lm/lm.cpp | |||
| @@ -146,18 +146,16 @@ void InstallInterfaces(SM::ServiceManager& service_manager) { | |||
| 146 | * 0: ResultCode | 146 | * 0: ResultCode |
| 147 | */ | 147 | */ |
| 148 | void LM::Initialize(Kernel::HLERequestContext& ctx) { | 148 | void LM::Initialize(Kernel::HLERequestContext& ctx) { |
| 149 | auto client_port = std::make_shared<Logger>()->CreatePort(); | 149 | auto logger = std::make_shared<Logger>(); |
| 150 | auto session = client_port->Connect(); | 150 | auto sessions = Kernel::ServerSession::CreateSessionPair(logger->GetServiceName()); |
| 151 | if (session.Succeeded()) { | 151 | auto server = std::get<Kernel::SharedPtr<Kernel::ServerSession>>(sessions); |
| 152 | LOG_DEBUG(Service_SM, "called, initialized logger -> session=%u", | 152 | auto client = std::get<Kernel::SharedPtr<Kernel::ClientSession>>(sessions); |
| 153 | (*session)->GetObjectId()); | 153 | logger->ClientConnected(server); |
| 154 | IPC::RequestBuilder rb{ctx, 2, 0, 1}; | 154 | |
| 155 | rb.Push(RESULT_SUCCESS); | 155 | LOG_DEBUG(Service_SM, "called, initialized logger -> session=%u", client->GetObjectId()); |
| 156 | rb.PushMoveObjects(std::move(session).Unwrap()); | 156 | IPC::RequestBuilder rb{ctx, 2, 0, 1}; |
| 157 | registered_loggers.emplace_back(std::move(client_port)); | 157 | rb.Push(RESULT_SUCCESS); |
| 158 | } else { | 158 | rb.PushMoveObjects(std::move(client)); |
| 159 | UNIMPLEMENTED(); | ||
| 160 | } | ||
| 161 | 159 | ||
| 162 | LOG_INFO(Service_SM, "called"); | 160 | LOG_INFO(Service_SM, "called"); |
| 163 | } | 161 | } |
diff --git a/src/core/hle/service/lm/lm.h b/src/core/hle/service/lm/lm.h index 4b954bdb2..371135057 100644 --- a/src/core/hle/service/lm/lm.h +++ b/src/core/hle/service/lm/lm.h | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include <vector> | 7 | #include <vector> |
| 8 | #include "core/hle/kernel/client_port.h" | ||
| 9 | #include "core/hle/kernel/kernel.h" | 8 | #include "core/hle/kernel/kernel.h" |
| 10 | #include "core/hle/service/service.h" | 9 | #include "core/hle/service/service.h" |
| 11 | 10 | ||
| @@ -19,8 +18,6 @@ public: | |||
| 19 | 18 | ||
| 20 | private: | 19 | private: |
| 21 | void Initialize(Kernel::HLERequestContext& ctx); | 20 | void Initialize(Kernel::HLERequestContext& ctx); |
| 22 | |||
| 23 | std::vector<Kernel::SharedPtr<Kernel::ClientPort>> registered_loggers; | ||
| 24 | }; | 21 | }; |
| 25 | 22 | ||
| 26 | /// Registers all LM services with the specified service manager. | 23 | /// Registers all LM services with the specified service manager. |