diff options
author | Lioncash <mathew1800@gmail.com> | 2019-03-06 03:52:19 +0100 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2019-03-06 03:52:21 +0100 |
commit | 196cc8291342770a0af7671668460f5d33cff3c0 (patch) | |
tree | 08a93afcbb8e67f1d0cbd1c83cd36ded534d3273 | |
parent | Merge pull request #2185 from FearlessTobi/port-4630 (diff) | |
download | yuzu-196cc8291342770a0af7671668460f5d33cff3c0.tar yuzu-196cc8291342770a0af7671668460f5d33cff3c0.tar.gz yuzu-196cc8291342770a0af7671668460f5d33cff3c0.tar.bz2 yuzu-196cc8291342770a0af7671668460f5d33cff3c0.tar.lz yuzu-196cc8291342770a0af7671668460f5d33cff3c0.tar.xz yuzu-196cc8291342770a0af7671668460f5d33cff3c0.tar.zst yuzu-196cc8291342770a0af7671668460f5d33cff3c0.zip |
-rw-r--r-- | src/yuzu/debugger/wait_tree.cpp | 8 | ||||
-rw-r--r-- | src/yuzu/debugger/wait_tree.h | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp index f50225d5f..06ad74ffe 100644 --- a/src/yuzu/debugger/wait_tree.cpp +++ b/src/yuzu/debugger/wait_tree.cpp @@ -81,9 +81,8 @@ QString WaitTreeText::GetText() const { return text; } -WaitTreeMutexInfo::WaitTreeMutexInfo(VAddr mutex_address) : mutex_address(mutex_address) { - const auto& handle_table = Core::CurrentProcess()->GetHandleTable(); - +WaitTreeMutexInfo::WaitTreeMutexInfo(VAddr mutex_address, const Kernel::HandleTable& handle_table) + : mutex_address(mutex_address) { mutex_value = Memory::Read32(mutex_address); owner_handle = static_cast<Kernel::Handle>(mutex_value & Kernel::Mutex::MutexOwnerMask); owner = handle_table.Get<Kernel::Thread>(owner_handle); @@ -316,7 +315,8 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeThread::GetChildren() const { const VAddr mutex_wait_address = thread.GetMutexWaitAddress(); if (mutex_wait_address != 0) { - list.push_back(std::make_unique<WaitTreeMutexInfo>(mutex_wait_address)); + const auto& handle_table = thread.GetOwnerProcess()->GetHandleTable(); + list.push_back(std::make_unique<WaitTreeMutexInfo>(mutex_wait_address, handle_table)); } else { list.push_back(std::make_unique<WaitTreeText>(tr("not waiting for mutex"))); } diff --git a/src/yuzu/debugger/wait_tree.h b/src/yuzu/debugger/wait_tree.h index 365c3dbfe..62886609d 100644 --- a/src/yuzu/debugger/wait_tree.h +++ b/src/yuzu/debugger/wait_tree.h @@ -17,6 +17,7 @@ class EmuThread; namespace Kernel { +class HandleTable; class ReadableEvent; class WaitObject; class Thread; @@ -72,7 +73,7 @@ public: class WaitTreeMutexInfo : public WaitTreeExpandableItem { Q_OBJECT public: - explicit WaitTreeMutexInfo(VAddr mutex_address); + explicit WaitTreeMutexInfo(VAddr mutex_address, const Kernel::HandleTable& handle_table); ~WaitTreeMutexInfo() override; QString GetText() const override; |