Changeset 163277 in webkit
- Timestamp:
- Feb 2, 2014 5:05:01 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r163276 r163277 1 2014-02-02 Andreas Kling <akling@apple.com> 2 3 SVGDocumentExtensions::resourcesCache() should return a reference. 4 <https://webkit.org/b/128087> 5 6 The SVGResourcesCache is always present when the Document is using 7 SVG extensions, so make this return a reference and propagate that 8 knowledge to the call site. 9 10 This gets rid of an assertion and some rickety looking ->'s. 11 Also converted a loop to use C++11 range for syntax. 12 13 Reviewed by Sam Weinig. 14 15 * rendering/svg/SVGResourcesCache.cpp: 16 (WebCore::resourcesCacheFromRenderer): 17 (WebCore::SVGResourcesCache::cachedResourcesForRenderObject): 18 (WebCore::SVGResourcesCache::clientStyleChanged): 19 (WebCore::SVGResourcesCache::clientWasAddedToTree): 20 (WebCore::SVGResourcesCache::clientWillBeRemovedFromTree): 21 (WebCore::SVGResourcesCache::clientDestroyed): 22 (WebCore::SVGResourcesCache::resourceDestroyed): 23 * svg/SVGDocumentExtensions.h: 24 (WebCore::SVGDocumentExtensions::resourcesCache): 25 1 26 2014-02-02 Andreas Kling <akling@apple.com> 2 27 -
trunk/Source/WebCore/rendering/svg/SVGResourcesCache.cpp
r161418 r163277 77 77 } 78 78 79 static inline SVGResourcesCache * resourcesCacheFromRenderObject(const RenderObject& renderer)79 static inline SVGResourcesCache& resourcesCacheFromRenderer(const RenderObject& renderer) 80 80 { 81 81 SVGDocumentExtensions* extensions = renderer.document().accessSVGExtensions(); 82 82 ASSERT(extensions); 83 84 SVGResourcesCache* cache = extensions->resourcesCache(); 85 ASSERT(cache); 86 87 return cache; 83 return extensions->resourcesCache(); 88 84 } 89 85 90 86 SVGResources* SVGResourcesCache::cachedResourcesForRenderObject(const RenderObject& renderer) 91 87 { 92 return resourcesCacheFromRender Object(renderer)->m_cache.get(&renderer);88 return resourcesCacheFromRenderer(renderer).m_cache.get(&renderer); 93 89 } 94 90 … … 123 119 // to be able to selectively rebuild individual resources, instead of all of them. 124 120 if (rendererCanHaveResources(renderer)) { 125 SVGResourcesCache* cache = resourcesCacheFromRenderObject(renderer);126 cache ->removeResourcesFromRenderer(renderer);127 cache ->addResourcesFromRenderer(renderer, newStyle);121 auto& cache = resourcesCacheFromRenderer(renderer); 122 cache.removeResourcesFromRenderer(renderer); 123 cache.addResourcesFromRenderer(renderer, newStyle); 128 124 } 129 125 … … 144 140 return; 145 141 RenderElement& elementRenderer = toRenderElement(renderer); 146 SVGResourcesCache* cache = resourcesCacheFromRenderObject(elementRenderer); 147 cache->addResourcesFromRenderer(elementRenderer, elementRenderer.style()); 142 resourcesCacheFromRenderer(elementRenderer).addResourcesFromRenderer(elementRenderer, elementRenderer.style()); 148 143 } 149 144 … … 158 153 return; 159 154 RenderElement& elementRenderer = toRenderElement(renderer); 160 SVGResourcesCache* cache = resourcesCacheFromRenderObject(elementRenderer); 161 cache->removeResourcesFromRenderer(elementRenderer); 155 resourcesCacheFromRenderer(elementRenderer).removeResourcesFromRenderer(elementRenderer); 162 156 } 163 157 … … 168 162 resources->removeClientFromCache(renderer); 169 163 170 SVGResourcesCache* cache = resourcesCacheFromRenderObject(renderer); 171 cache->removeResourcesFromRenderer(renderer); 164 resourcesCacheFromRenderer(renderer).removeResourcesFromRenderer(renderer); 172 165 } 173 166 174 167 void SVGResourcesCache::resourceDestroyed(RenderSVGResourceContainer& resource) 175 168 { 176 SVGResourcesCache* cache = resourcesCacheFromRenderObject(resource);169 auto& cache = resourcesCacheFromRenderer(resource); 177 170 178 171 // The resource itself may have clients, that need to be notified. 179 cache ->removeResourcesFromRenderer(resource);172 cache.removeResourcesFromRenderer(resource); 180 173 181 for (auto it = cache->m_cache.begin(), end = cache->m_cache.end(); it != end; ++it) {182 it ->value->resourceDestroyed(resource);174 for (auto& it : cache.m_cache) { 175 it.value->resourceDestroyed(resource); 183 176 184 177 // Mark users of destroyed resources as pending resolution based on the id of the old resource. 185 178 Element& resourceElement = resource.element(); 186 Element* clientElement = toElement(it ->key->node());179 Element* clientElement = toElement(it.key->node()); 187 180 SVGDocumentExtensions* extensions = clientElement->document().accessSVGExtensions(); 188 181 -
trunk/Source/WebCore/svg/SVGDocumentExtensions.h
r162119 r163277 63 63 void reportError(const String&); 64 64 65 SVGResourcesCache * resourcesCache() const { return m_resourcesCache.get(); }65 SVGResourcesCache& resourcesCache() { return *m_resourcesCache; } 66 66 67 67 HashSet<SVGElement*>* setOfElementsReferencingTarget(SVGElement* referencedElement) const;
Note: See TracChangeset
for help on using the changeset viewer.