Don't resolve bidi paragraph in preformatted text until we really get to the end of the line. Bug 670226, r=roc
authorSimon Montagu <smontagu@smontagu.org>
Tue, 12 Jul 2011 10:34:52 +0300
changeset 72615 e899fed03195b3980280b2cf46fb90261e5f72c8
parent 72614 c847d67a09f8239d8339eb91f6e303103bf1b7b3
child 72662 699ee4c1a49501a6e6a68f50dde49be723008af3
push id20747
push usersmontagu@mozilla.com
push dateTue, 12 Jul 2011 07:36:20 +0000
treeherdermozilla-central@e899fed03195 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersroc
bugs670226
milestone8.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Don't resolve bidi paragraph in preformatted text until we really get to the end of the line. Bug 670226, r=roc
layout/base/nsBidiPresUtils.cpp
--- a/layout/base/nsBidiPresUtils.cpp
+++ b/layout/base/nsBidiPresUtils.cpp
@@ -812,18 +812,23 @@ nsBidiPresUtils::TraverseFrames(nsBlockF
               while (end < endLine && nextSibling) { 
                 AdvanceAndAppendFrame(&frame, aLineIter, &nextSibling);
                 NS_ASSERTION(frame, "Premature end of continuation chain");
                 frame->GetOffsets(start, end);
                 mBuffer.Append(Substring(text, start,
                                          NS_MIN(end, endLine) - start));
               }
 
+              if (end < endLine) {
+                mPrevContent = nsnull;
+                break;
+              }
+
               PRBool createdContinuation = PR_FALSE;
-              if (end >= endLine && PRUint32(endLine) < text.Length()) {
+              if (PRUint32(endLine) < text.Length()) {
                 /*
                  * Timing is everything here: if the frame already has a bidi
                  * continuation, we need to make the continuation fluid *before*
                  * resetting the length of the current frame. Otherwise
                  * nsTextFrame::SetLength won't set the continuation frame's
                  * text offsets correctly.
                  *
                  * On the other hand, if the frame doesn't have a continuation,