Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1192)

Side by Side Diff: Source/core/rendering/RenderObject.cpp

Issue 152883002: (Concept patch) Simplify WTF::HashTable::add() return value for size and performance (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 2388 matching lines...) Expand 10 before | Expand all | Expand 10 after
2399 LayoutRect newContainerRect; 2399 LayoutRect newContainerRect;
2400 computeSelfHitTestRects(ownRects, layerOffset); 2400 computeSelfHitTestRects(ownRects, layerOffset);
2401 2401
2402 // When we get to have a lot of rects on a layer, the performance cost of tr acking those 2402 // When we get to have a lot of rects on a layer, the performance cost of tr acking those
2403 // rects outweighs the benefit of doing compositor thread hit testing. 2403 // rects outweighs the benefit of doing compositor thread hit testing.
2404 // FIXME: This limit needs to be low due to the O(n^2) algorithm in 2404 // FIXME: This limit needs to be low due to the O(n^2) algorithm in
2405 // WebLayer::setTouchEventHandlerRegion - crbug.com/300282. 2405 // WebLayer::setTouchEventHandlerRegion - crbug.com/300282.
2406 const size_t maxRectsPerLayer = 100; 2406 const size_t maxRectsPerLayer = 100;
2407 2407
2408 LayerHitTestRects::iterator iter = layerRects.find(currentLayer); 2408 LayerHitTestRects::iterator iter = layerRects.find(currentLayer);
2409 Vector<WebCore::LayoutRect>* iterValue;
2409 if (iter == layerRects.end()) 2410 if (iter == layerRects.end())
2410 iter = layerRects.add(currentLayer, Vector<LayoutRect>()).iterator; 2411 iterValue = &layerRects.add(currentLayer, Vector<LayoutRect>()).iterator ->value;
2412 else
2413 iterValue = &iter->value;
2411 for (size_t i = 0; i < ownRects.size(); i++) { 2414 for (size_t i = 0; i < ownRects.size(); i++) {
2412 if (!containerRect.contains(ownRects[i])) { 2415 if (!containerRect.contains(ownRects[i])) {
2413 iter->value.append(ownRects[i]); 2416 iterValue->append(ownRects[i]);
2414 if (iter->value.size() > maxRectsPerLayer) { 2417 if (iterValue->size() > maxRectsPerLayer) {
2415 // Just mark the entire layer instead, and switch to walking the layer 2418 // Just mark the entire layer instead, and switch to walking the layer
2416 // tree instead of the render tree. 2419 // tree instead of the render tree.
2417 layerRects.remove(currentLayer); 2420 layerRects.remove(currentLayer);
2418 currentLayer->addLayerHitTestRects(layerRects); 2421 currentLayer->addLayerHitTestRects(layerRects);
2419 return; 2422 return;
2420 } 2423 }
2421 if (newContainerRect.isEmpty()) 2424 if (newContainerRect.isEmpty())
2422 newContainerRect = ownRects[i]; 2425 newContainerRect = ownRects[i];
2423 } 2426 }
2424 } 2427 }
(...skipping 960 matching lines...) Expand 10 before | Expand all | Expand 10 after
3385 { 3388 {
3386 if (object1) { 3389 if (object1) {
3387 const WebCore::RenderObject* root = object1; 3390 const WebCore::RenderObject* root = object1;
3388 while (root->parent()) 3391 while (root->parent())
3389 root = root->parent(); 3392 root = root->parent();
3390 root->showRenderTreeAndMark(object1, "*", object2, "-", 0); 3393 root->showRenderTreeAndMark(object1, "*", object2, "-", 0);
3391 } 3394 }
3392 } 3395 }
3393 3396
3394 #endif 3397 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698