summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorMatthew Foulds <nokturnusmf@gmail.com>2019-11-19 18:47:00 +0000
committerMatthew Foulds <nokturnusmf@gmail.com>2019-11-22 19:16:34 +0000
commit5b6e7aabcff8e96872bfbb9206cd251697fbddb1 (patch)
treec1764ad7e1baa6cf520eb16d2b98a43a4b097938 /Source
parentd66050375c75ead50894154ee4fd18768d0ba884 (diff)
Fixed 11874 (leading 0s ignored by debugger)
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp2
-rw-r--r--Source/Core/DolphinQt/Debugger/MemoryWidget.cpp13
2 files changed, 9 insertions, 6 deletions
diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
index 86874198af..e33a2a8880 100644
--- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
@@ -379,7 +379,7 @@ void MemoryViewWidget::OnCopyHex()
u64 value = accessors->ReadU64(addr);
QApplication::clipboard()->setText(
- QStringLiteral("%1").arg(value, length * 2, 16, QLatin1Char('0')).left(length * 2));
+ QStringLiteral("%1").arg(value, sizeof(u64) * 2, 16, QLatin1Char('0')).left(length * 2));
}
void MemoryViewWidget::OnContextMenu()
diff --git a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
index 6de34ebab6..d76e6b0b5a 100644
--- a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
@@ -488,12 +488,15 @@ void MemoryWidget::OnSetValue()
const QByteArray bytes = m_data_edit->text().toUtf8();
for (char c : bytes)
- accessors->WriteU8(static_cast<u8>(c), addr++);
+ accessors->WriteU8(addr++, static_cast<u8>(c));
}
else
{
bool good_value;
- u64 value = m_data_edit->text().toULongLong(&good_value, 16);
+ const QString text = m_data_edit->text();
+ const int length =
+ text.startsWith(QStringLiteral("0x"), Qt::CaseInsensitive) ? text.size() - 2 : text.size();
+ const u64 value = text.toULongLong(&good_value, 16);
if (!good_value)
{
@@ -501,15 +504,15 @@ void MemoryWidget::OnSetValue()
return;
}
- if (value == static_cast<u8>(value))
+ if (length <= 2)
{
accessors->WriteU8(addr, static_cast<u8>(value));
}
- else if (value == static_cast<u16>(value))
+ else if (length <= 4)
{
accessors->WriteU16(addr, static_cast<u16>(value));
}
- else if (value == static_cast<u32>(value))
+ else if (length <= 8)
{
accessors->WriteU32(addr, static_cast<u32>(value));
}