diff options
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 9 |
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); |