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

Unified Diff: third_party/WebKit/Source/platform/graphics/paint/PaintController.cpp

Issue 1497873002: Make DisplayItemClient an interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years 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 side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698