From 05f669c9cef365de7a0bb5f79c6a1efc8f255a2f Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Mon, 28 Nov 2011 12:32:56 +0000 Subject: [PATCH] Fixed a potential crash if Fl_Double_Window::flush() was called before show(). Thanks to Mathieu Peyrega for the patch in fltk.general [1] on Nov 14, 2011, although I implemented it differently. [1] http://www.fltk.org/newsgroups.php?gfltk.general+v:33946 git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9188 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- CHANGES | 2 ++ src/Fl_Double_Window.cxx | 1 + 2 files changed, 3 insertions(+) diff --git a/CHANGES b/CHANGES index c9a402c50..0c6cecb21 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ CHANGES IN FLTK 1.3.1 + - Fixed a potential crash if Fl_Double_Window::flush() was called + before show() - Fixed regression (in FLTK 1.3.0) that could clear a radio button by using the keyboard (space or shortcut) (STR #2748) - Fixed fl_pie() drawing too small on X11 (STR #2703) diff --git a/src/Fl_Double_Window.cxx b/src/Fl_Double_Window.cxx index 61a9e8f1f..e363c793e 100644 --- a/src/Fl_Double_Window.cxx +++ b/src/Fl_Double_Window.cxx @@ -326,6 +326,7 @@ void Fl_Double_Window::flush() {flush(0);} void Fl_Double_Window::flush(int eraseoverlay) { make_current(); // make sure fl_gc is non-zero Fl_X *myi = Fl_X::i(this); + if (!myi) return; // window not yet created if (!myi->other_xid) { #if USE_XDBE if (can_xdbe()) {