diff options
| author | 2020-09-07 03:17:06 -0400 | |
|---|---|---|
| committer | 2020-09-07 03:18:45 -0400 | |
| commit | ffdf8c0cb334b4454e5913832ad74d68117e38e7 (patch) | |
| tree | c7b601ba20df631eb901d72fa707ae04f8cbd6e0 /src | |
| parent | Merge pull request #4606 from lioncash/constexpr (diff) | |
| download | yuzu-ffdf8c0cb334b4454e5913832ad74d68117e38e7.tar.gz yuzu-ffdf8c0cb334b4454e5913832ad74d68117e38e7.tar.xz yuzu-ffdf8c0cb334b4454e5913832ad74d68117e38e7.zip | |
service: Remove two usages of the global system accessor
Removes more instances of reliance on global state.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/service.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/service.h | 4 | ||||
| -rw-r--r-- | src/core/hle/service/sm/sm.cpp | 2 |
3 files changed, 5 insertions, 7 deletions
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 538f28495..94bc5ade7 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp | |||
| @@ -105,10 +105,9 @@ void ServiceFrameworkBase::InstallAsService(SM::ServiceManager& service_manager) | |||
| 105 | port_installed = true; | 105 | port_installed = true; |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | void ServiceFrameworkBase::InstallAsNamedPort() { | 108 | void ServiceFrameworkBase::InstallAsNamedPort(Kernel::KernelCore& kernel) { |
| 109 | ASSERT(!port_installed); | 109 | ASSERT(!port_installed); |
| 110 | 110 | ||
| 111 | auto& kernel = Core::System::GetInstance().Kernel(); | ||
| 112 | auto [server_port, client_port] = | 111 | auto [server_port, client_port] = |
| 113 | Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name); | 112 | Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name); |
| 114 | server_port->SetHleHandler(shared_from_this()); | 113 | server_port->SetHleHandler(shared_from_this()); |
| @@ -116,10 +115,9 @@ void ServiceFrameworkBase::InstallAsNamedPort() { | |||
| 116 | port_installed = true; | 115 | port_installed = true; |
| 117 | } | 116 | } |
| 118 | 117 | ||
| 119 | std::shared_ptr<Kernel::ClientPort> ServiceFrameworkBase::CreatePort() { | 118 | std::shared_ptr<Kernel::ClientPort> ServiceFrameworkBase::CreatePort(Kernel::KernelCore& kernel) { |
| 120 | ASSERT(!port_installed); | 119 | ASSERT(!port_installed); |
| 121 | 120 | ||
| 122 | auto& kernel = Core::System::GetInstance().Kernel(); | ||
| 123 | auto [server_port, client_port] = | 121 | auto [server_port, client_port] = |
| 124 | Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name); | 122 | Kernel::ServerPort::CreatePortPair(kernel, max_sessions, service_name); |
| 125 | auto port = MakeResult(std::move(server_port)).Unwrap(); | 123 | auto port = MakeResult(std::move(server_port)).Unwrap(); |
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index 022d885b6..a01ef3353 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h | |||
| @@ -63,9 +63,9 @@ public: | |||
| 63 | /// Creates a port pair and registers this service with the given ServiceManager. | 63 | /// Creates a port pair and registers this service with the given ServiceManager. |
| 64 | void InstallAsService(SM::ServiceManager& service_manager); | 64 | void InstallAsService(SM::ServiceManager& service_manager); |
| 65 | /// Creates a port pair and registers it on the kernel's global port registry. | 65 | /// Creates a port pair and registers it on the kernel's global port registry. |
| 66 | void InstallAsNamedPort(); | 66 | void InstallAsNamedPort(Kernel::KernelCore& kernel); |
| 67 | /// Creates and returns an unregistered port for the service. | 67 | /// Creates and returns an unregistered port for the service. |
| 68 | std::shared_ptr<Kernel::ClientPort> CreatePort(); | 68 | std::shared_ptr<Kernel::ClientPort> CreatePort(Kernel::KernelCore& kernel); |
| 69 | 69 | ||
| 70 | void InvokeRequest(Kernel::HLERequestContext& ctx); | 70 | void InvokeRequest(Kernel::HLERequestContext& ctx); |
| 71 | 71 | ||
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp index d872de16c..586b3d8eb 100644 --- a/src/core/hle/service/sm/sm.cpp +++ b/src/core/hle/service/sm/sm.cpp | |||
| @@ -43,7 +43,7 @@ void ServiceManager::InstallInterfaces(std::shared_ptr<ServiceManager> self, | |||
| 43 | ASSERT(self->sm_interface.expired()); | 43 | ASSERT(self->sm_interface.expired()); |
| 44 | 44 | ||
| 45 | auto sm = std::make_shared<SM>(self, kernel); | 45 | auto sm = std::make_shared<SM>(self, kernel); |
| 46 | sm->InstallAsNamedPort(); | 46 | sm->InstallAsNamedPort(kernel); |
| 47 | self->sm_interface = sm; | 47 | self->sm_interface = sm; |
| 48 | self->controller_interface = std::make_unique<Controller>(); | 48 | self->controller_interface = std::make_unique<Controller>(); |
| 49 | } | 49 | } |