diff --git a/src/core/core.cpp b/src/core/core.cpp index fe6fcd068a..e3b320e3b9 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -293,7 +293,6 @@ void System::Shutdown() { // Shutdown emulation session GDBStub::Shutdown(); VideoCore::Shutdown(); - kernel.reset(); HW::Shutdown(); telemetry_session.reset(); rpc_server.reset(); @@ -301,6 +300,7 @@ void System::Shutdown() { service_manager.reset(); dsp_core.reset(); cpu_core.reset(); + kernel.reset(); timing.reset(); app_loader.reset(); diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 3eb4dfcaa1..19333fd01a 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp @@ -131,13 +131,11 @@ ServiceFrameworkBase::ServiceFrameworkBase(const char* service_name, u32 max_ses ServiceFrameworkBase::~ServiceFrameworkBase() = default; void ServiceFrameworkBase::InstallAsService(SM::ServiceManager& service_manager) { - ASSERT(port == nullptr); - port = service_manager.RegisterService(service_name, max_sessions).Unwrap(); + auto port = service_manager.RegisterService(service_name, max_sessions).Unwrap(); port->SetHleHandler(shared_from_this()); } void ServiceFrameworkBase::InstallAsNamedPort(Kernel::KernelSystem& kernel) { - ASSERT(port == nullptr); auto [server_port, client_port] = kernel.CreatePortPair(max_sessions, service_name); server_port->SetHleHandler(shared_from_this()); kernel.AddNamedPort(service_name, std::move(client_port)); diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index 4aa1cb6001..c44249000f 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h @@ -92,12 +92,6 @@ private: /// Maximum number of concurrent sessions that this service can handle. u32 max_sessions; - /** - * Port where incoming connections will be received. Only created when InstallAsService() or - * InstallAsNamedPort() are called. - */ - Kernel::SharedPtr port; - /// Function used to safely up-cast pointers to the derived class before invoking a handler. InvokerFn* handler_invoker; boost::container::flat_map handlers;