diff options
author | Daniel Holbert <dholbert@cs.stanford.edu> | 2018-02-10 08:46:49 -0800 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-03-14 11:00:47 +0100 |
commit | 5babf7dc56e5d8fcd566845bbc991989a5b1c7b1 (patch) | |
tree | 5be3207933897068611ae8702b6084d785eddb86 | |
parent | 756fb3e1455cd903f952ded1c45f86e3527875ed (diff) | |
download | UXP-5babf7dc56e5d8fcd566845bbc991989a5b1c7b1.tar UXP-5babf7dc56e5d8fcd566845bbc991989a5b1c7b1.tar.gz UXP-5babf7dc56e5d8fcd566845bbc991989a5b1c7b1.tar.lz UXP-5babf7dc56e5d8fcd566845bbc991989a5b1c7b1.tar.xz UXP-5babf7dc56e5d8fcd566845bbc991989a5b1c7b1.zip |
Bug 1324042 - Fix trimmedOffsets arithmetic in GetRenderedText(). r=mats, a=RyanVM
MozReview-Commit-ID: H4ngU8Juyln
--HG--
extra : rebase_source : f4d6ab58ae70e485dfe72d5290cf6fae2c8397dd
extra : intermediate-source : bec50ba1fb12aebde4e4065b2799bc730bc30010
extra : source : fbf54020043bd09c162530907b2a1091a10f4f92
-rw-r--r-- | layout/generic/nsTextFrame.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/layout/generic/nsTextFrame.cpp b/layout/generic/nsTextFrame.cpp index b9848bcf1..00c0016fd 100644 --- a/layout/generic/nsTextFrame.cpp +++ b/layout/generic/nsTextFrame.cpp @@ -9751,9 +9751,13 @@ nsTextFrame::GetRenderedText(uint32_t aStartOffset, startOffset = aStartOffset; endOffset = std::min<uint32_t>(INT32_MAX, aEndOffset); } + + // If startOffset and/or endOffset are inside of trimmedOffsets' range, + // then clamp the edges of trimmedOffsets accordingly. + int32_t origTrimmedOffsetsEnd = trimmedOffsets.GetEnd(); trimmedOffsets.mStart = std::max<uint32_t>(trimmedOffsets.mStart, startOffset); - trimmedOffsets.mLength = std::min<uint32_t>(trimmedOffsets.GetEnd(), + trimmedOffsets.mLength = std::min<uint32_t>(origTrimmedOffsetsEnd, endOffset) - trimmedOffsets.mStart; if (trimmedOffsets.mLength <= 0) { offsetInRenderedString = nextOffsetInRenderedString; |