diff options
Diffstat (limited to 'src/PositionCache.cxx')
-rw-r--r-- | src/PositionCache.cxx | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index 458521a1c..ed3a08270 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -203,7 +203,7 @@ int LineLayout::SubLineFromPosition(int posInLine, PointEnd pe) const noexcept { void LineLayout::AddLineStart(Sci::Position start) { lines++; if (lines >= lenLineStarts) { - const int newMaxLines = lines + 20; + const int newMaxLines = lines * 2 + 4; std::unique_ptr<int[]> newLineStarts = std::make_unique<int[]>(newMaxLines); if (lenLineStarts) { std::copy(lineStarts.get(), lineStarts.get() + lenLineStarts, newLineStarts.get()); @@ -389,8 +389,8 @@ void LineLayout::WrapLine(const Document *pdoc, Sci::Position posLineStart, Wrap lastGoodBreak = CharacterBoundary(lastGoodBreak, 1); } } + AddLineStart(lastGoodBreak); lastLineStart = lastGoodBreak; - AddLineStart(lastLineStart); startOffset = positions[lastLineStart]; // take into account the space for start wrap mark and indent startOffset += wrapWidth - wrapIndent; |