From ce48887227040647c41adf1d28942f0b1e4c2a3f Mon Sep 17 00:00:00 2001 From: Zufu Liu Date: Sat, 5 Jun 2021 09:06:18 +1000 Subject: Avoid extra processing as value_or doesn't evaluate lazily. --- src/Document.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Document.cxx b/src/Document.cxx index 6531ad264..c3fcf10c3 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -525,7 +525,7 @@ static bool IsSubordinate(FoldLevel levelStart, FoldLevel levelTry) noexcept { } Sci::Line Document::GetLastChild(Sci::Line lineParent, std::optional level, Sci::Line lastLine) { - const FoldLevel levelStart = level.value_or(LevelNumberPart(GetFoldLevel(lineParent))); + const FoldLevel levelStart = LevelNumberPart(level ? *level : GetFoldLevel(lineParent)); const Sci::Line maxLine = LinesTotal(); const Sci::Line lookLastLine = (lastLine != -1) ? std::min(LinesTotal() - 1, lastLine) : -1; Sci::Line lineMaxSubord = lineParent; @@ -538,7 +538,7 @@ Sci::Line Document::GetLastChild(Sci::Line lineParent, std::optional lineMaxSubord++; } if (lineMaxSubord > lineParent) { - if (level > LevelNumberPart(GetFoldLevel(lineMaxSubord + 1))) { + if (levelStart > LevelNumberPart(GetFoldLevel(lineMaxSubord + 1))) { // Have chewed up some whitespace that belongs to a parent so seek back if (LevelIsWhitespace(GetFoldLevel(lineMaxSubord))) { lineMaxSubord--; -- cgit v1.2.3