Fix crashes in Qt debugger caused by trying to select a nonexistent disassembly or memory view

This commit is contained in:
AJR 2021-05-11 14:19:52 -04:00
parent 3955b5c9e9
commit a1c914bef9
2 changed files with 22 additions and 16 deletions

View File

@ -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();
}
}

View File

@ -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;
}
}
}