From 9c1aec0b3112dd01a5dc3b0a03fcf40926ecded9 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Thu, 21 Nov 2002 08:50:39 +0000 Subject: Added copy constructor and operator= to avoid blind copy of XPM pointer leading to problems when double freed. --- src/LineMarker.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/LineMarker.h b/src/LineMarker.h index 0ac4d3155..c75a31230 100644 --- a/src/LineMarker.h +++ b/src/LineMarker.h @@ -43,9 +43,24 @@ public: back = ColourDesired(0xff,0xff,0xff); pxpm = NULL; } + LineMarker(const LineMarker &) { + // Defined to avoid pxpm being blindly copied, not as real copy constructor + markType = SC_MARK_CIRCLE; + fore = ColourDesired(0,0,0); + back = ColourDesired(0xff,0xff,0xff); + pxpm = NULL; + } ~LineMarker() { delete pxpm; } + LineMarker &operator=(const LineMarker &) { + // Defined to avoid pxpm being blindly copied, not as real assignment operator + markType = SC_MARK_CIRCLE; + fore = ColourDesired(0,0,0); + back = ColourDesired(0xff,0xff,0xff); + pxpm = NULL; + return *this; + } void RefreshColourPalette(Palette &pal, bool want); void SetXPM(const char *textForm); void SetXPM(const char * const *linesForm); -- cgit v1.2.3