aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 64e643b67..fd8a2d719 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -179,7 +179,13 @@ void LineLayoutCache::AllocateForLevel(int linesOnScreen, int linesInDoc) {
}
if (lengthForLevel > size) {
Deallocate();
- } else if (lengthForLevel != length) {
+ } else {
+ if (lengthForLevel < length) {
+ for (int i=lengthForLevel; i<length; i++) {
+ delete cache[i];
+ cache[i] = 0;
+ }
+ }
Invalidate(LineLayout::llInvalid);
}
if (!cache) {
@@ -3950,6 +3956,7 @@ void Editor::SetDocPointer(Document *document) {
// Reset the contraction state to fully shown.
cs.Clear();
cs.InsertLines(0, pdoc->LinesTotal() - 1);
+ llc.Deallocate();
NeedWrapping();
pdoc->AddWatcher(this, 0);