Fixed a crash in the Font::wrapText function.

This commit is contained in:
Leon Styhre 2022-10-10 21:12:49 +02:00
parent 1c82228a9c
commit 241a0119ef

View file

@ -347,21 +347,22 @@ std::string Font::wrapText(const std::string& text,
} }
if (addDots) { if (addDots) {
if (wrappedText.back() == ' ') { if (!wrappedText.empty() && wrappedText.back() == ' ') {
lineWidth -= sizeText(" ").x; lineWidth -= sizeText(" ").x;
wrappedText.pop_back(); wrappedText.pop_back();
} }
else if (wrappedText.back() == '\t') { else if (!wrappedText.empty() && wrappedText.back() == '\t') {
lineWidth -= sizeText("\t").x; lineWidth -= sizeText("\t").x;
wrappedText.pop_back(); wrappedText.pop_back();
} }
while (!dotsSection.empty() && lineWidth + dotsWidth > maxLength) { while (!wrappedText.empty() && !dotsSection.empty() && lineWidth + dotsWidth > maxLength) {
lineWidth -= dotsSection.back().second; lineWidth -= dotsSection.back().second;
wrappedText.erase(wrappedText.length() - dotsSection.back().first); wrappedText.erase(wrappedText.length() - dotsSection.back().first);
dotsSection.pop_back(); dotsSection.pop_back();
} }
if (!wrappedText.empty() && wrappedText.back() == ' ') if (!wrappedText.empty() && wrappedText.back() == ' ')
wrappedText.pop_back(); wrappedText.pop_back();
wrappedText.append("..."); wrappedText.append("...");
} }