Blindly tried to fix crash reported by Roman Vanicek on Mailing list:
SetCellHighlightColour sometimes segfaults in wxGTK. The
application crashes in LookupAttr.
Tentative explanation: Cache handling gets confused if LookupAttr gets
called on wxGridNoCell.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16904
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- dc.SetClippingRegion( rect );
StringToLines( value, lines );
StringToLines( value, lines );
long textWidth, textHeight;
long lineWidth, lineHeight;
long textWidth, textHeight;
long lineWidth, lineHeight;
+ dc.SetClippingRegion( rect );
if ( lines.GetCount() )
{
GetTextBoxSize( dc, lines, &textWidth, &textHeight );
if ( lines.GetCount() )
{
GetTextBoxSize( dc, lines, &textWidth, &textHeight );
wxGridCellAttr *wxGrid::GetCellAttr(int row, int col) const
{
wxGridCellAttr *wxGrid::GetCellAttr(int row, int col) const
{
- wxGridCellAttr *attr;
- if ( !LookupAttr(row, col, &attr) )
- {
- attr = m_table ? m_table->GetAttr(row, col , wxGridCellAttr::Any) : (wxGridCellAttr *)NULL;
- CacheAttr(row, col, attr);
+ wxGridCellAttr *attr = NULL;
+ // Additional test to avoid looking at the cache e.g. for
+ // wxNoCellCoords, as this will confuse memory management.
+ if ( row >= 0 )
+ {
+ if ( !LookupAttr(row, col, &attr) )
+ {
+ attr = m_table ? m_table->GetAttr(row, col , wxGridCellAttr::Any)
+ : (wxGridCellAttr *)NULL;
+ CacheAttr(row, col, attr);
+ }