diff options
author | 2021-05-11 14:19:52 -0400 | |
---|---|---|
committer | 2021-05-11 14:19:52 -0400 | |
commit | a1c914bef9304153cc2f00cae5dcbd69a2323969 (patch) | |
tree | 644f07f4569777696c79c2dae238f307696361b4 /src/osd/modules/debugger/qt/memorywindow.cpp | |
parent | 3955b5c9e9a9ba6b15e601f471df75aba5dff79c (diff) |
Fix crashes in Qt debugger caused by trying to select a nonexistent disassembly or memory view
Diffstat (limited to 'src/osd/modules/debugger/qt/memorywindow.cpp')
-rw-r--r-- | src/osd/modules/debugger/qt/memorywindow.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/osd/modules/debugger/qt/memorywindow.cpp b/src/osd/modules/debugger/qt/memorywindow.cpp index 6f25c6bc964..9989ac6d66d 100644 --- a/src/osd/modules/debugger/qt/memorywindow.cpp +++ b/src/osd/modules/debugger/qt/memorywindow.cpp @@ -169,21 +169,24 @@ MemoryWindow::~MemoryWindow() void MemoryWindow::memoryRegionChanged(int index) { - m_memTable->view()->set_source(*m_memTable->view()->source(index)); - m_memTable->viewport()->update(); - - // Update the data format radio buttons to the memory region's default - debug_view_memory *memView = downcast<debug_view_memory*>(m_memTable->view()); - switch (memView->get_data_format()) + if (index < m_memTable->view()->source_count()) { - case 1: dataFormatMenuItem("formatActOne")->setChecked(true); break; - case 2: dataFormatMenuItem("formatActTwo")->setChecked(true); break; - case 4: dataFormatMenuItem("formatActFour")->setChecked(true); break; - case 8: dataFormatMenuItem("formatActEight")->setChecked(true); break; - case 9: dataFormatMenuItem("formatAct32bitFloat")->setChecked(true); break; - case 10: dataFormatMenuItem("formatAct64bitFloat")->setChecked(true); break; - case 11: dataFormatMenuItem("formatAct80bitFloat")->setChecked(true); break; - default: break; + m_memTable->view()->set_source(*m_memTable->view()->source(index)); + m_memTable->viewport()->update(); + + // Update the data format radio buttons to the memory region's default + debug_view_memory *memView = downcast<debug_view_memory*>(m_memTable->view()); + switch (memView->get_data_format()) + { + case 1: dataFormatMenuItem("formatActOne")->setChecked(true); break; + case 2: dataFormatMenuItem("formatActTwo")->setChecked(true); break; + case 4: dataFormatMenuItem("formatActFour")->setChecked(true); break; + case 8: dataFormatMenuItem("formatActEight")->setChecked(true); break; + case 9: dataFormatMenuItem("formatAct32bitFloat")->setChecked(true); break; + case 10: dataFormatMenuItem("formatAct64bitFloat")->setChecked(true); break; + case 11: dataFormatMenuItem("formatAct80bitFloat")->setChecked(true); break; + default: break; + } } } |