From 9046d4a5485452802b756869b7d27056ba9ea9d7 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 24 Nov 2019 20:15:51 -0500 Subject: kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154) * kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. - See https://github.com/citra-emu/citra/pull/4710 for details. --- src/core/hle/kernel/server_session.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/core/hle/kernel/server_session.cpp') diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index 30b2bfb5a..2994fa0ac 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp @@ -35,8 +35,9 @@ ServerSession::~ServerSession() { parent->server = nullptr; } -ResultVal> ServerSession::Create(KernelCore& kernel, std::string name) { - SharedPtr server_session(new ServerSession(kernel)); +ResultVal> ServerSession::Create(KernelCore& kernel, + std::string name) { + std::shared_ptr server_session = std::make_shared(kernel); server_session->name = std::move(name); server_session->parent = nullptr; @@ -69,7 +70,7 @@ void ServerSession::ClientDisconnected() { if (handler) { // Note that after this returns, this server session's hle_handler is // invalidated (set to null). - handler->ClientDisconnected(this); + handler->ClientDisconnected(SharedFrom(this)); } // Clean up the list of client threads with pending requests, they are unneeded now that the @@ -126,11 +127,11 @@ ResultCode ServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& con return RESULT_SUCCESS; } -ResultCode ServerSession::HandleSyncRequest(SharedPtr thread) { +ResultCode ServerSession::HandleSyncRequest(std::shared_ptr thread) { // The ServerSession received a sync request, this means that there's new data available // from its ClientSession, so wake up any threads that may be waiting on a svcReplyAndReceive or // similar. - Kernel::HLERequestContext context(this, thread); + Kernel::HLERequestContext context(SharedFrom(this), thread); u32* cmd_buf = (u32*)Memory::GetPointer(thread->GetTLSAddress()); context.PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf); @@ -186,9 +187,9 @@ ResultCode ServerSession::HandleSyncRequest(SharedPtr thread) { ServerSession::SessionPair ServerSession::CreateSessionPair(KernelCore& kernel, const std::string& name, - SharedPtr port) { + std::shared_ptr port) { auto server_session = ServerSession::Create(kernel, name + "_Server").Unwrap(); - SharedPtr client_session(new ClientSession(kernel)); + std::shared_ptr client_session = std::make_shared(kernel); client_session->name = name + "_Client"; std::shared_ptr parent(new Session); -- cgit v1.2.3