OSDN Git Service

Add null checks in getTouchHighlightRects()
authorRussell Brenner <russellbrenner@google.com>
Thu, 15 Sep 2011 23:53:35 +0000 (16:53 -0700)
committerRussell Brenner <russellbrenner@google.com>
Fri, 16 Sep 2011 00:13:30 +0000 (17:13 -0700)
Make sure renderer exists before calling it.

Bug: 5300238
Change-Id: Ie01bc1aaab3390d7c82be65a9b1d183167677e3c

Source/WebKit/android/jni/WebViewCore.cpp

index 9b5a6fa..e2193d8 100644 (file)
@@ -1729,7 +1729,7 @@ Vector<IntRect> WebViewCore::getTouchHighlightRects(int x, int y, int slop)
         Node* eventNode = it->get();
         while (eventNode) {
             RenderObject* render = eventNode->renderer();
-            if (render->isBody() || render->isRenderView())
+            if (render && (render->isBody() || render->isRenderView()))
                 break;
             if (eventNode->supportsFocus()
                     || eventNode->hasEventListeners(eventNames().clickEvent)
@@ -1755,7 +1755,7 @@ Vector<IntRect> WebViewCore::getTouchHighlightRects(int x, int y, int slop)
             // If the fat point touches everyone, the order in the list should be "b", "d", "c"
             // and "a". When we search for the event node for "b", we really don't want "a" as
             // in the z-order it is behind everything else.
-            if (!render->style()->hasAutoZIndex())
+            if (render && !render->style()->hasAutoZIndex())
                 break;
             eventNode = eventNode->parentNode();
         }