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

Unified Diff: third_party/WebKit/Source/core/fetch/ImageResource.cpp

Issue 2191633003: Move ResourceClient to Oilpan heap (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onheap-raw-resource-client
Patch Set: rebase Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/fetch/ImageResource.cpp
diff --git a/third_party/WebKit/Source/core/fetch/ImageResource.cpp b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
index 36553ba304f6d24fecebb4fe0764a0c8ebe326d5..381b9c473b0c3ce357ef486a69d81d3fa41912ec 100644
--- a/third_party/WebKit/Source/core/fetch/ImageResource.cpp
+++ b/third_party/WebKit/Source/core/fetch/ImageResource.cpp
@@ -26,7 +26,6 @@
#include "core/fetch/ImageResourceObserver.h"
#include "core/fetch/MemoryCache.h"
#include "core/fetch/ResourceClient.h"
-#include "core/fetch/ResourceClientOrObserverWalker.h"
#include "core/fetch/ResourceFetcher.h"
#include "core/fetch/ResourceLoader.h"
#include "core/svg/graphics/SVGImage.h"
@@ -38,12 +37,40 @@
#include "public/platform/Platform.h"
#include "public/platform/WebCachePolicy.h"
#include "wtf/CurrentTime.h"
+#include "wtf/HashCountedSet.h"
#include "wtf/StdLibExtras.h"
+#include "wtf/Vector.h"
#include <memory>
namespace blink {
-using ImageResourceObserverWalker = ResourceClientOrObserverWalker<ImageResourceObserver, ImageResourceObserver>;
+struct ImageResourceObserverWalker {
haraken 2016/08/02 04:18:06 Shall we add a TODO to replace this with ResourceC
yhirano 2016/08/03 10:40:28 Thanks, done.
+ STACK_ALLOCATED();
+public:
+ explicit ImageResourceObserverWalker(const HashCountedSet<ImageResourceObserver*>& set)
+ : m_observerSet(set)
+ {
+ m_observerVector.reserveCapacity(set.size());
+ for (const auto& keyvalue : set)
+ m_observerVector.append(keyvalue.key);
+ }
+
+ ImageResourceObserver* next()
+ {
+ size_t size = m_observerVector.size();
+ while (m_index < size) {
+ auto* next = m_observerVector[m_index++];
+ if (m_observerSet.contains(next))
+ return next;
+ }
+ return nullptr;
+ }
+
+private:
+ const HashCountedSet<ImageResourceObserver*>& m_observerSet;
+ Vector<ImageResourceObserver*> m_observerVector;
+ size_t m_index = 0;
+};
ImageResource* ImageResource::fetch(FetchRequest& request, ResourceFetcher* fetcher)
{

Powered by Google App Engine
This is Rietveld 408576698