diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2021-05-11 14:19:52 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2021-05-11 14:19:52 -0400 |
commit | a1c914bef9304153cc2f00cae5dcbd69a2323969 (patch) | |
tree | 644f07f4569777696c79c2dae238f307696361b4 /src/osd | |
parent | 3955b5c9e9a9ba6b15e601f471df75aba5dff79c (diff) |
Fix crashes in Qt debugger caused by trying to select a nonexistent disassembly or memory view
Diffstat (limited to 'src/osd')
-rw-r--r-- | src/osd/modules/debugger/qt/dasmwindow.cpp | 7 | ||||
-rw-r--r-- | src/osd/modules/debugger/qt/memorywindow.cpp | 31 |
2 files changed, 22 insertions, 16 deletions
diff --git a/src/osd/modules/debugger/qt/dasmwindow.cpp b/src/osd/modules/debugger/qt/dasmwindow.cpp index 4eee8d86fb1..44ce8bac988 100644 --- a/src/osd/modules/debugger/qt/dasmwindow.cpp +++ b/src/osd/modules/debugger/qt/dasmwindow.cpp @@ -119,8 +119,11 @@ DasmWindow::~DasmWindow() void DasmWindow::cpuChanged(int index) { - m_dasmView->view()->set_source(*m_dasmView->view()->source(index)); - m_dasmView->viewport()->update(); + if (index < m_dasmView->view()->source_count()) + { + m_dasmView->view()->set_source(*m_dasmView->view()->source(index)); + m_dasmView->viewport()->update(); + } } 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; + } } } |