Merge pull request #2204 from lioncash/wait-tree
yuzu/debugger/wait_tree: Remove use of global CurrentProcess accessor
This commit is contained in:
commit
8ee78521fa
|
@ -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")));
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Reference in New Issue