From 3b13683cadbb4c73f5d6a97deaa1f09be072f7da Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Wed, 18 Jun 2003 07:41:24 +0000 Subject: [PATCH] Workaround a crash bug; real solution as yet unknown git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21221 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- contrib/src/stc/scintilla/src/Editor.cxx | 6 ++++++ src/stc/scintilla/src/Editor.cxx | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/contrib/src/stc/scintilla/src/Editor.cxx b/contrib/src/stc/scintilla/src/Editor.cxx index 44399a5fb0..e6b7df0be1 100644 --- a/contrib/src/stc/scintilla/src/Editor.cxx +++ b/contrib/src/stc/scintilla/src/Editor.cxx @@ -1,6 +1,7 @@ // Scintilla source code edit control /** @file Editor.cxx ** Main code for the edit control. + Last change: JS 18 Jun 103 1:08 am **/ // Copyright 1998-2003 by Neil Hodgson // The License.txt file describes the conditions under which this software may be distributed. @@ -2353,6 +2354,11 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) { } } + // Workaround by JACS: sometimes due to a re-entry condition, + // pixmapLine becomes uninitialised, followed by a crash. + if (!pixmapLine->Initialised()) + return; + PRectangle rcRightMargin = rcClient; rcRightMargin.left = rcRightMargin.right - vs.rightMarginWidth; if (rcArea.Intersects(rcRightMargin)) { diff --git a/src/stc/scintilla/src/Editor.cxx b/src/stc/scintilla/src/Editor.cxx index 44399a5fb0..e6b7df0be1 100644 --- a/src/stc/scintilla/src/Editor.cxx +++ b/src/stc/scintilla/src/Editor.cxx @@ -1,6 +1,7 @@ // Scintilla source code edit control /** @file Editor.cxx ** Main code for the edit control. + Last change: JS 18 Jun 103 1:08 am **/ // Copyright 1998-2003 by Neil Hodgson // The License.txt file describes the conditions under which this software may be distributed. @@ -2353,6 +2354,11 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) { } } + // Workaround by JACS: sometimes due to a re-entry condition, + // pixmapLine becomes uninitialised, followed by a crash. + if (!pixmapLine->Initialised()) + return; + PRectangle rcRightMargin = rcClient; rcRightMargin.left = rcRightMargin.right - vs.rightMarginWidth; if (rcArea.Intersects(rcRightMargin)) { -- 2.45.2