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) |
{ |