| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index 7e6f2835a25a48e821d8e2703bb9f0eaa6892550..60570c75976253ebfe0eec785dbfc8ab92669f31 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -2406,12 +2406,15 @@ void RenderObject::addLayerHitTestRects(LayerHitTestRects& layerRects, const Ren
|
| const size_t maxRectsPerLayer = 100;
|
|
|
| LayerHitTestRects::iterator iter = layerRects.find(currentLayer);
|
| + Vector<WebCore::LayoutRect>* iterValue;
|
| if (iter == layerRects.end())
|
| - iter = layerRects.add(currentLayer, Vector<LayoutRect>()).iterator;
|
| + iterValue = &layerRects.add(currentLayer, Vector<LayoutRect>()).iterator->value;
|
| + else
|
| + iterValue = &iter->value;
|
| for (size_t i = 0; i < ownRects.size(); i++) {
|
| if (!containerRect.contains(ownRects[i])) {
|
| - iter->value.append(ownRects[i]);
|
| - if (iter->value.size() > maxRectsPerLayer) {
|
| + iterValue->append(ownRects[i]);
|
| + if (iterValue->size() > maxRectsPerLayer) {
|
| // Just mark the entire layer instead, and switch to walking the layer
|
| // tree instead of the render tree.
|
| layerRects.remove(currentLayer);
|
|
|