Applied AutoWrap Renderer Bugfix by Roger Gammans (Patch 467479).

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
This commit is contained in:
Stefan Neis
2002-09-01 00:54:01 +00:00
parent 068a7cfeee
commit a373d23b14

View File

@@ -6788,7 +6788,6 @@ void wxGrid::DrawTextRectangle( wxDC& dc,
{ {
wxArrayString lines; wxArrayString lines;
dc.SetClippingRegion( rect );
StringToLines( value, lines ); StringToLines( value, lines );
@@ -6810,6 +6809,7 @@ void wxGrid::DrawTextRectangle( wxDC& dc,
long textWidth, textHeight; long textWidth, textHeight;
long lineWidth, lineHeight; long lineWidth, lineHeight;
dc.SetClippingRegion( rect );
if ( lines.GetCount() ) if ( lines.GetCount() )
{ {
GetTextBoxSize( dc, lines, &textWidth, &textHeight ); GetTextBoxSize( dc, lines, &textWidth, &textHeight );
@@ -8509,11 +8509,17 @@ bool wxGrid::LookupAttr(int row, int col, wxGridCellAttr **attr) const
wxGridCellAttr *wxGrid::GetCellAttr(int row, int col) const wxGridCellAttr *wxGrid::GetCellAttr(int row, int col) const
{ {
wxGridCellAttr *attr; wxGridCellAttr *attr = NULL;
if ( !LookupAttr(row, col, &attr) ) // Additional test to avoid looking at the cache e.g. for
// wxNoCellCoords, as this will confuse memory management.
if ( row >= 0 )
{ {
attr = m_table ? m_table->GetAttr(row, col , wxGridCellAttr::Any) : (wxGridCellAttr *)NULL; if ( !LookupAttr(row, col, &attr) )
CacheAttr(row, col, attr); {
attr = m_table ? m_table->GetAttr(row, col , wxGridCellAttr::Any)
: (wxGridCellAttr *)NULL;
CacheAttr(row, col, attr);
}
} }
if (attr) if (attr)
{ {