| 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;
|
| }
|
|
|
|
|