From f935485158747a0ba67eba7a9e6ed1e514d55502 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 6 Oct 2016 12:25:28 -0400 Subject: [PATCH 1/5] DSPRegisterView: Get rid of explicit memsets --- Source/Core/DolphinWX/Debugger/DSPRegisterView.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h index dccfb7f975..642eedd207 100644 --- a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h +++ b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h @@ -4,7 +4,7 @@ #pragma once -#include +#include #include #include "Common/CommonTypes.h" @@ -12,18 +12,14 @@ class CDSPRegTable : public wxGridTableBase { private: - u64 m_CachedCounter; - u16 m_CachedRegs[32]; - bool m_CachedRegHasChanged[32]; + u64 m_CachedCounter = 0; + std::array m_CachedRegs{}; + std::array m_CachedRegHasChanged{}; DECLARE_NO_COPY_CLASS(CDSPRegTable); public: - CDSPRegTable() - { - memset(m_CachedRegs, 0, sizeof(m_CachedRegs)); - memset(m_CachedRegHasChanged, 0, sizeof(m_CachedRegHasChanged)); - } + CDSPRegTable() = default; int GetNumberCols() override { return 2; } int GetNumberRows() override { return 32; } From 66fd347d2e5e8a4530eac1bfba267a8c09a745c3 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 6 Oct 2016 12:26:53 -0400 Subject: [PATCH 2/5] DSPRegisterView: Move private members below public API --- Source/Core/DolphinWX/Debugger/DSPRegisterView.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h index 642eedd207..d0834d3f28 100644 --- a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h +++ b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h @@ -11,13 +11,6 @@ class CDSPRegTable : public wxGridTableBase { -private: - u64 m_CachedCounter = 0; - std::array m_CachedRegs{}; - std::array m_CachedRegHasChanged{}; - - DECLARE_NO_COPY_CLASS(CDSPRegTable); - public: CDSPRegTable() = default; @@ -28,6 +21,13 @@ public: void SetValue(int row, int col, const wxString&) override; wxGridCellAttr* GetAttr(int, int, wxGridCellAttr::wxAttrKind) override; void UpdateCachedRegs(); + +private: + u64 m_CachedCounter = 0; + std::array m_CachedRegs{}; + std::array m_CachedRegHasChanged{}; + + DECLARE_NO_COPY_CLASS(CDSPRegTable); }; class DSPRegisterView : public wxGrid From 2781ae5af1e023a4aa0efcae388a5afbecb454ec Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 6 Oct 2016 12:35:29 -0400 Subject: [PATCH 3/5] DSPRegisterView: Mark classes as final These aren't intended to be extended upon. --- Source/Core/DolphinWX/Debugger/DSPRegisterView.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h index d0834d3f28..246c5e8ed3 100644 --- a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h +++ b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h @@ -9,7 +9,7 @@ #include "Common/CommonTypes.h" -class CDSPRegTable : public wxGridTableBase +class CDSPRegTable final : public wxGridTableBase { public: CDSPRegTable() = default; @@ -30,7 +30,7 @@ private: DECLARE_NO_COPY_CLASS(CDSPRegTable); }; -class DSPRegisterView : public wxGrid +class DSPRegisterView final : public wxGrid { public: DSPRegisterView(wxWindow* parent, wxWindowID id = wxID_ANY); From 5dedd0a85b01548378c2765eb1e557301f09ba61 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 6 Oct 2016 12:36:32 -0400 Subject: [PATCH 4/5] DSPRegisterView: Make DSPRegisterView's constructor explicit --- Source/Core/DolphinWX/Debugger/DSPRegisterView.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h index 246c5e8ed3..2d1354b5e9 100644 --- a/Source/Core/DolphinWX/Debugger/DSPRegisterView.h +++ b/Source/Core/DolphinWX/Debugger/DSPRegisterView.h @@ -33,7 +33,7 @@ private: class DSPRegisterView final : public wxGrid { public: - DSPRegisterView(wxWindow* parent, wxWindowID id = wxID_ANY); + explicit DSPRegisterView(wxWindow* parent, wxWindowID id = wxID_ANY); void Repopulate(); private: From 2ba0d6eb77eb1542a68d5a3998531578b4782b25 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 6 Oct 2016 12:47:57 -0400 Subject: [PATCH 5/5] DSPRegisterView: Get rid of magic numbers --- Source/Core/Core/DSP/DSPCore.cpp | 4 ++-- Source/Core/Core/DSP/DSPCore.h | 5 +++-- Source/Core/DolphinWX/Debugger/DSPRegisterView.cpp | 10 ++++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/DSP/DSPCore.cpp b/Source/Core/Core/DSP/DSPCore.cpp index 428cd09fd3..5a0b06ad3d 100644 --- a/Source/Core/Core/DSP/DSPCore.cpp +++ b/Source/Core/Core/DSP/DSPCore.cpp @@ -331,7 +331,7 @@ void CompileCurrent() } } -u16 DSPCore_ReadRegister(int reg) +u16 DSPCore_ReadRegister(size_t reg) { switch (reg) { @@ -388,7 +388,7 @@ u16 DSPCore_ReadRegister(int reg) } } -void DSPCore_WriteRegister(int reg, u16 val) +void DSPCore_WriteRegister(size_t reg, u16 val) { switch (reg) { diff --git a/Source/Core/Core/DSP/DSPCore.h b/Source/Core/Core/DSP/DSPCore.h index b270b0117a..c6ac49eb99 100644 --- a/Source/Core/Core/DSP/DSPCore.h +++ b/Source/Core/Core/DSP/DSPCore.h @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -358,5 +359,5 @@ DSPCoreState DSPCore_GetState(); void DSPCore_Step(); -u16 DSPCore_ReadRegister(int reg); -void DSPCore_WriteRegister(int reg, u16 val); +u16 DSPCore_ReadRegister(size_t reg); +void DSPCore_WriteRegister(size_t reg, u16 val); diff --git a/Source/Core/DolphinWX/Debugger/DSPRegisterView.cpp b/Source/Core/DolphinWX/Debugger/DSPRegisterView.cpp index 4f0d6fb2d3..65fdc2b9ca 100644 --- a/Source/Core/DolphinWX/Debugger/DSPRegisterView.cpp +++ b/Source/Core/DolphinWX/Debugger/DSPRegisterView.cpp @@ -13,7 +13,7 @@ wxString CDSPRegTable::GetValue(int row, int col) { - if (row < 32) // 32 "normal" regs + if (row < GetNumberRows()) { switch (col) { @@ -41,10 +41,12 @@ void CDSPRegTable::UpdateCachedRegs() m_CachedCounter = g_dsp.step_counter; - for (int i = 0; i < 32; ++i) + for (size_t i = 0; i < m_CachedRegs.size(); ++i) { - m_CachedRegHasChanged[i] = (m_CachedRegs[i] != DSPCore_ReadRegister(i)); - m_CachedRegs[i] = DSPCore_ReadRegister(i); + const u16 value = DSPCore_ReadRegister(i); + + m_CachedRegHasChanged[i] = m_CachedRegs[i] != value; + m_CachedRegs[i] = value; } }