Index: Source/core/rendering/RenderObject.cpp |
diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp |
index 3c67d938d7e0ea3c3051fbeddc0cb52c6dd3cdfe..453ee14c5c7fd964428197912aef557aa6a0514b 100644 |
--- a/Source/core/rendering/RenderObject.cpp |
+++ b/Source/core/rendering/RenderObject.cpp |
@@ -525,13 +525,14 @@ RenderLayer* RenderObject::findNextLayer(RenderLayer* parentLayer, RenderObject* |
RenderLayer* RenderObject::enclosingLayer() const |
{ |
- const RenderObject* curr = this; |
- while (curr) { |
- RenderLayer* layer = curr->hasLayer() ? toRenderLayerModelObject(curr)->layer() : 0; |
- if (layer) |
- return layer; |
- curr = curr->parent(); |
- } |
+ for (const RenderObject* current = this; current; current = current->parent()) { |
+ if (current->hasLayer()) |
+ return toRenderLayerModelObject(current)->layer(); |
+ } |
+ // This line of code should be unreachable. However, if |this| is zero, we |
+ // can reach this line. Of course, it's undefined behavior to call a member |
+ // function on a zero pointer, but that doesn't stop |
+ // FrameView::paintContents. :) |
return 0; |
} |