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

Side by Side Diff: Source/WebCore/rendering/svg/SVGResourcesCache.cpp

Issue 8598007: Merge 100502 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/912/
Patch Set: Created 9 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « LayoutTests/svg/filters/reparent-animated-filter-target-expected.txt ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 2 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 #if ENABLE(FILTERS) 148 #if ENABLE(FILTERS)
149 SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject( renderer); 149 SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject( renderer);
150 if (resources && resources->filter()) 150 if (resources && resources->filter())
151 resources->removeClientFromCache(renderer); 151 resources->removeClientFromCache(renderer);
152 #endif 152 #endif
153 } 153 }
154 154
155 void SVGResourcesCache::clientDestroyed(RenderObject* renderer) 155 void SVGResourcesCache::clientDestroyed(RenderObject* renderer)
156 { 156 {
157 ASSERT(renderer); 157 ASSERT(renderer);
158
159 SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject( renderer);
160 if (resources)
161 resources->removeClientFromCache(renderer);
162
158 SVGResourcesCache* cache = resourcesCacheFromRenderObject(renderer); 163 SVGResourcesCache* cache = resourcesCacheFromRenderObject(renderer);
159 cache->removeResourcesFromRenderObject(renderer); 164 cache->removeResourcesFromRenderObject(renderer);
160 } 165 }
161 166
162 void SVGResourcesCache::resourceDestroyed(RenderSVGResourceContainer* resource) 167 void SVGResourcesCache::resourceDestroyed(RenderSVGResourceContainer* resource)
163 { 168 {
164 ASSERT(resource); 169 ASSERT(resource);
165 SVGResourcesCache* cache = resourcesCacheFromRenderObject(resource); 170 SVGResourcesCache* cache = resourcesCacheFromRenderObject(resource);
166 171
167 // The resource itself may have clients, that need to be notified. 172 // The resource itself may have clients, that need to be notified.
168 cache->removeResourcesFromRenderObject(resource); 173 cache->removeResourcesFromRenderObject(resource);
169 174
170 HashMap<RenderObject*, SVGResources*>::iterator end = cache->m_cache.end(); 175 HashMap<RenderObject*, SVGResources*>::iterator end = cache->m_cache.end();
171 for (HashMap<RenderObject*, SVGResources*>::iterator it = cache->m_cache.beg in(); it != end; ++it) { 176 for (HashMap<RenderObject*, SVGResources*>::iterator it = cache->m_cache.beg in(); it != end; ++it) {
172 it->second->resourceDestroyed(resource); 177 it->second->resourceDestroyed(resource);
173 178
174 // Mark users of destroyed resources as pending resolution based on the id of the old resource. 179 // Mark users of destroyed resources as pending resolution based on the id of the old resource.
175 Element* resourceElement = toElement(resource->node()); 180 Element* resourceElement = toElement(resource->node());
176 SVGStyledElement* clientElement = toSVGStyledElement(it->first->node()); 181 SVGStyledElement* clientElement = toSVGStyledElement(it->first->node());
177 SVGDocumentExtensions* extensions = clientElement->document()->accessSVG Extensions(); 182 SVGDocumentExtensions* extensions = clientElement->document()->accessSVG Extensions();
178 183
179 extensions->addPendingResource(resourceElement->fastGetAttribute(HTMLNam es::idAttr), clientElement); 184 extensions->addPendingResource(resourceElement->fastGetAttribute(HTMLNam es::idAttr), clientElement);
180 } 185 }
181 } 186 }
182 187
183 } 188 }
184 189
185 #endif 190 #endif
OLDNEW
« no previous file with comments | « LayoutTests/svg/filters/reparent-animated-filter-target-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698