aboutsummaryrefslogblamecommitdiff
path: root/www/waterfox/files/patch-bug1324042
blob: d9edf5e153b558539817ef267d4d00f311bf89a5 (plain) (tree)
































                                                                                       
commit ac0f7d653b1e
Author: Daniel Holbert <dholbert@cs.stanford.edu>
Date:   Sat Feb 10 08:46:49 2018 -0800

    Bug 1324042: Fix trimmedOffsets arithmetic in GetRenderedText(). r=mats a=abillings
    
    MozReview-Commit-ID: H4ngU8Juyln
    
    --HG--
    extra : source : fbf54020043bd09c162530907b2a1091a10f4f92
---
 layout/generic/nsTextFrame.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git layout/generic/nsTextFrame.cpp layout/generic/nsTextFrame.cpp
index 42891e960eea..f8b49e4d07cf 100644
--- layout/generic/nsTextFrame.cpp
+++ layout/generic/nsTextFrame.cpp
@@ -10116,9 +10116,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;