Fix crash due to dereferencing null pointer in list mode

TryAdvanceCurrentColumn() is called with NULL node in this case, so
avoid dereferencing it.
This commit is contained in:
Vadim Zeitlin
2020-04-17 23:28:03 +02:00
parent c80626d33a
commit 736628f7a0

View File

@@ -4525,8 +4525,18 @@ bool wxDataViewMainWindow::TryAdvanceCurrentColumn(wxDataViewTreeNode *node, wxK
{ {
if ( forward ) if ( forward )
{ {
// find first column with value if ( node )
m_currentCol = FindFirstColumnWithValue(node->GetItem()); {
// find first column with value
m_currentCol = FindFirstColumnWithValue(node->GetItem());
}
else
{
// in the special "list" case, all columns have values, so just
// take the first one
m_currentCol = GetOwner()->GetColumnAt(0);
}
m_currentColSetByKeyboard = true; m_currentColSetByKeyboard = true;
RefreshRow(m_currentRow); RefreshRow(m_currentRow);
return true; return true;
@@ -4579,7 +4589,7 @@ bool wxDataViewMainWindow::TryAdvanceCurrentColumn(wxDataViewTreeNode *node, wxK
return false; return false;
} }
} }
if ( GetModel()->HasValue(node->GetItem(), i) ) if ( !node || GetModel()->HasValue(node->GetItem(), i) )
break; break;
} }