Chromium Code Reviews| 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) |
| { |