From 05f30eecb7fbe4b923e8c0ff13b1a97a03cb75d3 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 19 Nov 2001 20:43:04 +0000 Subject: [PATCH] Fixed a problem in the demo and plugged a potential leak in SetDashes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/demo/wxScrolledWindow.py | 3 +-- wxPython/src/gdi.i | 14 +++++++++++--- wxPython/src/gtk/gdi.cpp | 7 +++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/wxPython/demo/wxScrolledWindow.py b/wxPython/demo/wxScrolledWindow.py index ca1f8f6619..bb679ceb44 100644 --- a/wxPython/demo/wxScrolledWindow.py +++ b/wxPython/demo/wxScrolledWindow.py @@ -88,14 +88,13 @@ class MyCanvas(wxScrolledWindow): for style in [wxDOT, wxLONG_DASH, wxSHORT_DASH, wxDOT_DASH, wxUSER_DASH]: pen = wxPen("DARK ORCHID", 1, style) if style == wxUSER_DASH: - pen.SetDashes([0, 1, 2, 3, 4, 5, 6, 7, 8]) + pen.SetDashes([1, 2, 3, 4, 5, 6, 7, 8]) pen.SetColour("RED") dc.SetPen(pen) dc.DrawLine(300, y, 400, y) y = y + 10 - self.DrawSavedLines(dc) dc.EndDrawing() diff --git a/wxPython/src/gdi.i b/wxPython/src/gdi.i index 46323e7589..e7c4ff6190 100644 --- a/wxPython/src/gdi.i +++ b/wxPython/src/gdi.i @@ -628,6 +628,11 @@ public: + +// The list of ints for the dashes needs to exist for the life of the pen +// so we make it part of the class to save it. wxPyPen is aliased to wxPen +// in _extras.py + %{ class wxPyPen : public wxPen { public: @@ -636,13 +641,16 @@ public: { m_dash = NULL; } ~wxPyPen() { if (m_dash) - delete m_dash; + delete [] m_dash; } void SetDashes(int nb_dashes, const wxDash *dash) { + if (m_dash) + delete [] m_dash; m_dash = new wxDash[nb_dashes]; - for (int i=0; i