diff options
Diffstat (limited to 'Source/Core/DolphinQt/Debugger/MemoryWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Debugger/MemoryWidget.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
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)); } |
