summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2022-06-08 19:59:27 -0700
committerPokechu22 <Pokechu022@gmail.com>2022-06-22 09:56:50 -0700
commit567f9bede4db4298c709c5234bfa103c2a3fd279 (patch)
tree8f998725f89582e57837653e9c60d7dd3ed51d56 /Source/Core
parentb063f15dccf030e9b4fdeac189f779181d25db9c (diff)
DSPHLE: Remove unneeded calls to m_mail_handler.Clear()
It's cleared whenever the uCode changes, so there's no reason to clear it in a destructor or during initialization. I've also renamed it to ClearPending.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/HW/DSPHLE/DSPHLE.cpp4
-rw-r--r--Source/Core/Core/HW/DSPHLE/MailHandler.cpp7
-rw-r--r--Source/Core/Core/HW/DSPHLE/MailHandler.h6
-rw-r--r--Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp1
-rw-r--r--Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp1
-rw-r--r--Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp1
-rw-r--r--Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp1
-rw-r--r--Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp1
8 files changed, 10 insertions, 12 deletions
diff --git a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp
index c686930383..9e17a78ecc 100644
--- a/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp
+++ b/Source/Core/Core/HW/DSPHLE/DSPHLE.cpp
@@ -67,7 +67,7 @@ void DSPHLE::SendMailToDSP(u32 mail)
void DSPHLE::SetUCode(u32 crc)
{
- m_mail_handler.Clear();
+ m_mail_handler.ClearPending();
m_ucode = UCodeFactory(crc, this, m_wii);
m_ucode->Initialize();
}
@@ -77,7 +77,7 @@ void DSPHLE::SetUCode(u32 crc)
// Even callers are deleted.
void DSPHLE::SwapUCode(u32 crc)
{
- m_mail_handler.Clear();
+ m_mail_handler.ClearPending();
if (m_last_ucode && UCodeInterface::GetCRC(m_last_ucode.get()) == crc)
{
diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp
index 46019abc6f..b1d0377ec2 100644
--- a/Source/Core/Core/HW/DSPHLE/MailHandler.cpp
+++ b/Source/Core/Core/HW/DSPHLE/MailHandler.cpp
@@ -19,7 +19,6 @@ CMailHandler::CMailHandler()
CMailHandler::~CMailHandler()
{
- Clear();
}
void CMailHandler::PushMail(u32 mail, bool interrupt, int cycles_into_future)
@@ -69,7 +68,7 @@ u16 CMailHandler::ReadDSPMailboxLow()
return 0x00;
}
-void CMailHandler::Clear()
+void CMailHandler::ClearPending()
{
while (!m_Mails.empty())
m_Mails.pop();
@@ -84,7 +83,7 @@ void CMailHandler::Halt(bool _Halt)
{
if (_Halt)
{
- Clear();
+ ClearPending();
PushMail(0x80544348);
}
}
@@ -93,7 +92,7 @@ void CMailHandler::DoState(PointerWrap& p)
{
if (p.IsReadMode())
{
- Clear();
+ ClearPending();
int sz = 0;
p.Do(sz);
for (int i = 0; i < sz; i++)
diff --git a/Source/Core/Core/HW/DSPHLE/MailHandler.h b/Source/Core/Core/HW/DSPHLE/MailHandler.h
index 773cf042bb..411d169545 100644
--- a/Source/Core/Core/HW/DSPHLE/MailHandler.h
+++ b/Source/Core/Core/HW/DSPHLE/MailHandler.h
@@ -20,11 +20,15 @@ public:
// TODO: figure out correct timing for interrupts rather than defaulting to "immediately."
void PushMail(u32 mail, bool interrupt = false, int cycles_into_future = 0);
- void Clear();
void Halt(bool _Halt);
void DoState(PointerWrap& p);
bool HasPending() const;
+ // Clear any pending mail from the current uCode. This is called by DSPHLE::SetUCode and
+ // DSPHLE::SwapUCode. Since pending mail is an abstraction for DSPHLE and not something that
+ // actually exists on real hardware, HLE implementations do not need to call this directly.
+ void ClearPending();
+
u16 ReadDSPMailboxHigh();
u16 ReadDSPMailboxLow();
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp
index ee64a96659..45d9848b8c 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp
@@ -34,7 +34,6 @@ AXUCode::AXUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc)
AXUCode::~AXUCode()
{
- m_mail_handler.Clear();
}
void AXUCode::Initialize()
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp
index 23ee74bec8..ac14bd26be 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/CARD.cpp
@@ -18,7 +18,6 @@ CARDUCode::CARDUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc)
CARDUCode::~CARDUCode()
{
- m_mail_handler.Clear();
}
void CARDUCode::Initialize()
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp
index 49816fe6fd..b22e594719 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/GBA.cpp
@@ -75,7 +75,6 @@ GBAUCode::GBAUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc)
GBAUCode::~GBAUCode()
{
- m_mail_handler.Clear();
}
void GBAUCode::Initialize()
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp
index e41a5b19c0..00e4989afe 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/ROM.cpp
@@ -34,7 +34,6 @@ ROMUCode::~ROMUCode()
void ROMUCode::Initialize()
{
- m_mail_handler.Clear();
m_mail_handler.PushMail(0x8071FEED);
}
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp
index 7cfab59596..5c07a31ea4 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp
@@ -130,7 +130,6 @@ ZeldaUCode::ZeldaUCode(DSPHLE* dsphle, u32 crc) : UCodeInterface(dsphle, crc)
ZeldaUCode::~ZeldaUCode()
{
- m_mail_handler.Clear();
}
void ZeldaUCode::Initialize()