Reviewed by Darin Adler.
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Mar 2009 22:14:46 +0000 (22:14 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Mar 2009 22:14:46 +0000 (22:14 +0000)
        Fix case where lBreak.obj->isBR() when lBreak.obj was NULL
        https://bugs.webkit.org/show_bug.cgi?id=24684

        I don't have a test case where we were taking the wrong path here
        However, adding an ASSERT(lBreak.obj) before this usage caused
        multiple bidi tests to fail, so lBreak.obj can be null here.

        * rendering/bidi.cpp:
        (WebCore::RenderBlock::findNextLineBreak):
          lBreak.obj can be null, so we can't call ->isBR() on it unconditionally.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41988 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/rendering/bidi.cpp

index 92bb47f..fcaa763 100644 (file)
 
 2009-03-24  Eric Seidel  <eric@webkit.org>
 
+        Reviewed by Darin Adler.
+
+        Fix case where lBreak.obj->isBR() when lBreak.obj was NULL
+        https://bugs.webkit.org/show_bug.cgi?id=24684
+
+        I don't have a test case where we were taking the wrong path here
+        However, adding an ASSERT(lBreak.obj) before this usage caused
+        multiple bidi tests to fail, so lBreak.obj can be null here.
+
+        * rendering/bidi.cpp:
+        (WebCore::RenderBlock::findNextLineBreak):
+          lBreak.obj can be null, so we can't call ->isBR() on it unconditionally.
+
+2009-03-24  Eric Seidel  <eric@webkit.org>
+
         Reviewed by Simon Fraser.
 
         Style cleanup and dead code removal in dom, editing
index 4a6a42b..3765d13 100644 (file)
@@ -2098,8 +2098,7 @@ InlineIterator RenderBlock::findNextLineBreak(InlineBidiResolver& resolver, bool
     }
 
  end:
-
-    if (lBreak == resolver.position() && !lBreak.obj->isBR()) {
+    if (lBreak == resolver.position() && (!lBreak.obj || !lBreak.obj->isBR())) {
         // we just add as much as possible
         if (style()->whiteSpace() == PRE) {
             // FIXME: Don't really understand this case.