Index: third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp b/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp |
index 6f06a7f0462ba12ac4baec6f5359d78254bfdac0..7ff41d879a1975fe0fd770f9c109124053059ff7 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp |
@@ -41,7 +41,7 @@ void PaintController::removeLastDisplayItem() |
#if ENABLE(ASSERT) |
// Also remove the index pointing to the removed display item. |
- DisplayItemIndicesByClientMap::iterator it = m_newDisplayItemIndicesByClient.find(m_newDisplayItemList.last().client()); |
+ DisplayItemIndicesByClientMap::iterator it = m_newDisplayItemIndicesByClient.find(&m_newDisplayItemList.last().client()); |
if (it != m_newDisplayItemIndicesByClient.end()) { |
Vector<size_t>& indices = it->value; |
if (!indices.isEmpty() && indices.last() == (m_newDisplayItemList.size() - 1)) |
@@ -117,7 +117,7 @@ void PaintController::endScope() |
endSkippingCache(); |
} |
-void PaintController::invalidate(const DisplayItemClientWrapper& client, PaintInvalidationReason paintInvalidationReason, const IntRect* visualRect) |
+void PaintController::invalidate(const DisplayItemClient& client, PaintInvalidationReason paintInvalidationReason, const IntRect* visualRect) |
{ |
invalidateClient(client); |
@@ -126,25 +126,25 @@ void PaintController::invalidate(const DisplayItemClientWrapper& client, PaintIn |
} |
} |
-void PaintController::invalidateClient(const DisplayItemClientWrapper& client) |
+void PaintController::invalidateClient(const DisplayItemClient& client) |
{ |
#if ENABLE(ASSERT) |
// Slimming paint v1 CompositedLayerMapping may invalidate client on extra layers. |
- if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() || clientCacheIsValid(client.displayItemClient())) |
+ if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() || clientCacheIsValid(client)) |
m_invalidations.append(client.debugName()); |
#endif |
- invalidateUntracked(client.displayItemClient()); |
+ invalidateUntracked(client); |
if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() && m_trackedPaintInvalidationObjects) |
m_trackedPaintInvalidationObjects->append(client.debugName()); |
} |
-void PaintController::invalidateUntracked(DisplayItemClient client) |
+void PaintController::invalidateUntracked(const DisplayItemClient& client) |
{ |
// This can be called during painting, but we can't invalidate already painted clients. |
- ASSERT(!m_newDisplayItemIndicesByClient.contains(client)); |
+ ASSERT(!m_newDisplayItemIndicesByClient.contains(&client)); |
updateValidlyCachedClientsIfNeeded(); |
- m_validlyCachedClients.remove(client); |
+ m_validlyCachedClients.remove(&client); |
} |
void PaintController::invalidateAll() |
@@ -159,36 +159,36 @@ void PaintController::invalidateAll() |
m_trackedPaintInvalidationObjects->append("##ALL##"); |
} |
-bool PaintController::clientCacheIsValid(DisplayItemClient client) const |
+bool PaintController::clientCacheIsValid(const DisplayItemClient& client) const |
{ |
if (skippingCache()) |
return false; |
updateValidlyCachedClientsIfNeeded(); |
- return m_validlyCachedClients.contains(client); |
+ return m_validlyCachedClients.contains(&client); |
} |
-void PaintController::invalidatePaintOffset(const DisplayItemClientWrapper& client) |
+void PaintController::invalidatePaintOffset(const DisplayItemClient& client) |
{ |
ASSERT(RuntimeEnabledFeatures::slimmingPaintOffsetCachingEnabled()); |
invalidateClient(client); |
#if ENABLE(ASSERT) |
- ASSERT(!paintOffsetWasInvalidated(client.displayItemClient())); |
- m_clientsWithPaintOffsetInvalidations.add(client.displayItemClient()); |
+ ASSERT(!paintOffsetWasInvalidated(client)); |
+ m_clientsWithPaintOffsetInvalidations.add(&client); |
#endif |
} |
#if ENABLE(ASSERT) |
-bool PaintController::paintOffsetWasInvalidated(DisplayItemClient client) const |
+bool PaintController::paintOffsetWasInvalidated(const DisplayItemClient& client) const |
{ |
ASSERT(RuntimeEnabledFeatures::slimmingPaintOffsetCachingEnabled()); |
- return m_clientsWithPaintOffsetInvalidations.contains(client); |
+ return m_clientsWithPaintOffsetInvalidations.contains(&client); |
} |
#endif |
size_t PaintController::findMatchingItemFromIndex(const DisplayItem::Id& id, const DisplayItemIndicesByClientMap& displayItemIndicesByClient, const DisplayItemList& list) |
{ |
- DisplayItemIndicesByClientMap::const_iterator it = displayItemIndicesByClient.find(id.client); |
+ DisplayItemIndicesByClientMap::const_iterator it = displayItemIndicesByClient.find(&id.client); |
if (it == displayItemIndicesByClient.end()) |
return kNotFound; |
@@ -208,9 +208,9 @@ void PaintController::addItemToIndexIfNeeded(const DisplayItem& displayItem, siz |
if (!displayItem.isCacheable()) |
return; |
- DisplayItemIndicesByClientMap::iterator it = displayItemIndicesByClient.find(displayItem.client()); |
+ DisplayItemIndicesByClientMap::iterator it = displayItemIndicesByClient.find(&displayItem.client()); |
Vector<size_t>& indices = it == displayItemIndicesByClient.end() ? |
- displayItemIndicesByClient.add(displayItem.client(), Vector<size_t>()).storedValue->value : it->value; |
+ displayItemIndicesByClient.add(&displayItem.client(), Vector<size_t>()).storedValue->value : it->value; |
indices.append(index); |
} |
@@ -435,12 +435,12 @@ void PaintController::updateValidlyCachedClientsIfNeeded() const |
m_validlyCachedClients.clear(); |
m_validlyCachedClientsDirty = false; |
- DisplayItemClient lastAddedClient = nullptr; |
+ const DisplayItemClient* lastAddedClient = nullptr; |
for (const DisplayItem& displayItem : m_currentPaintArtifact.displayItemList()) { |
- if (displayItem.client() == lastAddedClient) |
+ if (&displayItem.client() == lastAddedClient) |
continue; |
if (displayItem.isCacheable()) { |
- lastAddedClient = displayItem.client(); |
+ lastAddedClient = &displayItem.client(); |
m_validlyCachedClients.add(lastAddedClient); |
} |
} |
@@ -509,7 +509,7 @@ void PaintController::checkCachedDisplayItemIsUnchanged(const char* messagePrefi |
ASSERT_NOT_REACHED(); |
} |
- if (newItem.isCacheable() && !m_validlyCachedClients.contains(newItem.client())) { |
+ if (newItem.isCacheable() && !m_validlyCachedClients.contains(&newItem.client())) { |
showUnderInvalidationError(messagePrefix, "ERROR: under-invalidation: invalidated in cached subsequence", &newItem, &oldItem); |
ASSERT_NOT_REACHED(); |
} |