From 8b064ce4521a34da81beefe5c7b7743825a90b45 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Wed, 10 Jun 2009 10:54:57 +0000 Subject: Clear out per-line data when all contents removed. --- src/CellBuffer.cxx | 5 ++++- src/CellBuffer.h | 1 + src/Document.cxx | 7 +++++++ src/Document.h | 1 + src/PerLine.cxx | 16 ++++++++++++++++ src/PerLine.h | 4 ++++ 6 files changed, 33 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/CellBuffer.cxx b/src/CellBuffer.cxx index 1db0d7d0a..7134d3188 100644 --- a/src/CellBuffer.cxx +++ b/src/CellBuffer.cxx @@ -21,7 +21,7 @@ using namespace Scintilla; #endif -LineVector::LineVector() : starts(256) { +LineVector::LineVector() : starts(256), perLine(0) { Init(); } @@ -31,6 +31,9 @@ LineVector::~LineVector() { void LineVector::Init() { starts.DeleteAll(); + if (perLine) { + perLine->Init(); + } } void LineVector::SetPerLine(PerLine *pl) { diff --git a/src/CellBuffer.h b/src/CellBuffer.h index 5af135736..336dfb4df 100644 --- a/src/CellBuffer.h +++ b/src/CellBuffer.h @@ -16,6 +16,7 @@ namespace Scintilla { class PerLine { public: virtual ~PerLine() {} + virtual void Init()=0; virtual void InsertLine(int)=0; virtual void RemoveLine(int)=0; }; diff --git a/src/Document.cxx b/src/Document.cxx index ac37215b2..c71f840b6 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -100,6 +100,13 @@ Document::~Document() { regex = 0; } +void Document::Init() { + for (int j=0; jInit(); + } +} + void Document::InsertLine(int line) { for (int j=0; j levels; public: virtual ~LineLevels(); + virtual void Init(); virtual void InsertLine(int line); virtual void RemoveLine(int line); @@ -79,6 +81,7 @@ public: LineState() { } virtual ~LineState(); + virtual void Init(); virtual void InsertLine(int line); virtual void RemoveLine(int line); @@ -93,6 +96,7 @@ public: LineAnnotation() { } virtual ~LineAnnotation(); + virtual void Init(); virtual void InsertLine(int line); virtual void RemoveLine(int line); -- cgit v1.2.3