Skip to content
Permalink
Browse files

Common/DebugInterface: Make return value of GetColor() a u32

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 8, 2019
1 parent a9a9b19 commit d4d485b692cee326126e003950c582c08de18916
@@ -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;
};
@@ -4,6 +4,7 @@

#include "Core/Debugger/PPCDebugInterface.h"

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

@@ -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()];
}
// =============

@@ -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;
@@ -4,6 +4,7 @@

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

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

@@ -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++)
@@ -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()];
}
// =============

@@ -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;
@@ -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')));

0 comments on commit d4d485b

Please sign in to comment.
You can’t perform that action at this time.