summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd
diff options
context:
space:
mode:
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
commita1c914bef9304153cc2f00cae5dcbd69a2323969 (patch)
tree644f07f4569777696c79c2dae238f307696361b4 /src/osd
parent3955b5c9e9a9ba6b15e601f471df75aba5dff79c (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.cpp7
-rw-r--r--src/osd/modules/debugger/qt/memorywindow.cpp31
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;
+ }
}
}