Skip to content

Commit

Permalink
Common/DebugInterface: Make return value of GetColor() a u32
Browse files Browse the repository at this point in the history
At its only usage point, its return value is stored into a u32, and the
default implementation returns 0xFFFFFFFF (-1), which would be an
unsigned integer. Given all of the bits are used to determine a color,
it makes slightly more sense to treat this as an unsigned value as
opposed to a signed one.
  • Loading branch information
lioncash committed Jul 9, 2019
1 parent a9a9b19 commit d4d485b
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 24 deletions.
2 changes: 1 addition & 1 deletion Source/Core/Common/DebugInterface.h
Expand Up @@ -74,7 +74,7 @@ class DebugInterface
virtual void SetPC(u32 /*address*/) {}
virtual void Step() {}
virtual void RunToBreakpoint() {}
virtual int GetColor(u32 /*address*/) { return 0xFFFFFFFF; }
virtual u32 GetColor(u32 /*address*/) { return 0xFFFFFFFF; }
virtual std::string GetDescription(u32 /*address*/) = 0;
virtual void Clear() = 0;
};
Expand Down
19 changes: 11 additions & 8 deletions Source/Core/Core/Debugger/PPCDebugInterface.cpp
Expand Up @@ -4,6 +4,7 @@

#include "Core/Debugger/PPCDebugInterface.h"

#include <array>
#include <cstddef>
#include <string>

Expand Down Expand Up @@ -300,26 +301,28 @@ void PPCDebugInterface::ToggleMemCheck(u32 address, bool read, bool write, bool
// =======================================================
// Separate the blocks with colors.
// -------------
int PPCDebugInterface::GetColor(u32 address)
u32 PPCDebugInterface::GetColor(u32 address)
{
if (!IsAlive())
return 0xFFFFFF;
if (!PowerPC::HostIsRAMAddress(address))
return 0xeeeeee;
static const int colors[6] = {

Common::Symbol* symbol = g_symbolDB.GetSymbolFromAddr(address);
if (!symbol)
return 0xFFFFFF;
if (symbol->type != Common::Symbol::Type::Function)
return 0xEEEEFF;

static constexpr std::array<u32, 6> colors{
0xd0FFFF, // light cyan
0xFFd0d0, // light red
0xd8d8FF, // light blue
0xFFd0FF, // light purple
0xd0FFd0, // light green
0xFFFFd0, // light yellow
};
Common::Symbol* symbol = g_symbolDB.GetSymbolFromAddr(address);
if (!symbol)
return 0xFFFFFF;
if (symbol->type != Common::Symbol::Type::Function)
return 0xEEEEFF;
return colors[symbol->index % 6];
return colors[symbol->index % colors.size()];
}
// =============

Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Core/Debugger/PPCDebugInterface.h
Expand Up @@ -77,7 +77,7 @@ class PPCDebugInterface final : public Common::DebugInterface
void SetPC(u32 address) override;
void Step() override {}
void RunToBreakpoint() override;
int GetColor(u32 address) override;
u32 GetColor(u32 address) override;
std::string GetDescription(u32 address) override;

void Clear() override;
Expand Down
23 changes: 12 additions & 11 deletions Source/Core/Core/HW/DSPLLE/DSPDebugInterface.cpp
Expand Up @@ -4,6 +4,7 @@

#include "Core/HW/DSPLLE/DSPDebugInterface.h"

#include <array>
#include <cstddef>
#include <string>

Expand Down Expand Up @@ -257,17 +258,8 @@ void DSPDebugInterface::ToggleMemCheck(u32 address, bool read, bool write, bool
// =======================================================
// Separate the blocks with colors.
// -------------
int DSPDebugInterface::GetColor(u32 address)
u32 DSPDebugInterface::GetColor(u32 address)
{
static const int colors[6] = {
0xd0FFFF, // light cyan
0xFFd0d0, // light red
0xd8d8FF, // light blue
0xFFd0FF, // light purple
0xd0FFd0, // light green
0xFFFFd0, // light yellow
};

// Scan backwards so we don't miss it. Hm, actually, let's not - it looks pretty good.
int addr = -1;
for (int i = 0; i < 1; i++)
Expand All @@ -284,7 +276,16 @@ int DSPDebugInterface::GetColor(u32 address)
return 0xFFFFFF;
if (symbol->type != Common::Symbol::Type::Function)
return 0xEEEEFF;
return colors[symbol->index % 6];

static constexpr std::array<u32, 6> colors{
0xd0FFFF, // light cyan
0xFFd0d0, // light red
0xd8d8FF, // light blue
0xFFd0FF, // light purple
0xd0FFd0, // light green
0xFFFFd0, // light yellow
};
return colors[symbol->index % colors.size()];
}
// =============

Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Core/HW/DSPLLE/DSPDebugInterface.h
Expand Up @@ -71,7 +71,7 @@ class DSPDebugInterface final : public Common::DebugInterface
void SetPC(u32 address) override;
void Step() override {}
void RunToBreakpoint() override;
int GetColor(u32 address) override;
u32 GetColor(u32 address) override;
std::string GetDescription(u32 address) override;

void Clear() override;
Expand Down
4 changes: 2 additions & 2 deletions Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
Expand Up @@ -121,8 +121,8 @@ void CodeViewWidget::Update()

for (int i = 0; i < rowCount(); i++)
{
u32 addr = m_address - ((rowCount() / 2) * 4) + i * 4;
u32 color = PowerPC::debug_interface.GetColor(addr);
const u32 addr = m_address - ((rowCount() / 2) * 4) + i * 4;
const u32 color = PowerPC::debug_interface.GetColor(addr);
auto* bp_item = new QTableWidgetItem;
auto* addr_item = new QTableWidgetItem(QStringLiteral("%1").arg(addr, 8, 16, QLatin1Char('0')));

Expand Down

0 comments on commit d4d485b

Please sign in to comment.