Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 53 SVGResources* resources = m_cache.set(object, newResources.release()).stored Value->value.get(); | 53 SVGResources* resources = m_cache.set(object, newResources.release()).stored Value->value.get(); |
| 54 | 54 |
| 55 // Run cycle-detection _afterwards_, so self-references can be caught as wel l. | 55 // Run cycle-detection _afterwards_, so self-references can be caught as wel l. |
| 56 SVGResourcesCycleSolver solver(object, resources); | 56 SVGResourcesCycleSolver solver(object, resources); |
| 57 solver.resolveCycles(); | 57 solver.resolveCycles(); |
| 58 | 58 |
| 59 // Walk resources and register the render object at each resources. | 59 // Walk resources and register the render object at each resources. |
| 60 HashSet<RenderSVGResourceContainer*> resourceSet; | 60 HashSet<RenderSVGResourceContainer*> resourceSet; |
| 61 resources->buildSetOfResources(resourceSet); | 61 resources->buildSetOfResources(resourceSet); |
| 62 | 62 |
| 63 HashSet<RenderSVGResourceContainer*>::iterator end = resourceSet.end(); | 63 for (auto* resourceContainer : resourceSet) |
| 64 for (HashSet<RenderSVGResourceContainer*>::iterator it = resourceSet.begin() ; it != end; ++it) | 64 resourceContainer->addClient(object); |
| 65 (*it)->addClient(object); | |
| 66 } | 65 } |
| 67 | 66 |
| 68 void SVGResourcesCache::removeResourcesFromRenderObject(RenderObject* object) | 67 void SVGResourcesCache::removeResourcesFromRenderObject(RenderObject* object) |
| 69 { | 68 { |
| 70 OwnPtr<SVGResources> resources = m_cache.take(object); | 69 OwnPtr<SVGResources> resources = m_cache.take(object); |
| 71 if (!resources) | 70 if (!resources) |
| 72 return; | 71 return; |
| 73 | 72 |
| 74 // Walk resources and register the render object at each resources. | 73 // Walk resources and register the render object at each resources. |
| 75 HashSet<RenderSVGResourceContainer*> resourceSet; | 74 HashSet<RenderSVGResourceContainer*> resourceSet; |
| 76 resources->buildSetOfResources(resourceSet); | 75 resources->buildSetOfResources(resourceSet); |
| 77 | 76 |
| 78 HashSet<RenderSVGResourceContainer*>::iterator end = resourceSet.end(); | 77 for (auto* resourceContainer : resourceSet) |
| 79 for (HashSet<RenderSVGResourceContainer*>::iterator it = resourceSet.begin() ; it != end; ++it) | 78 resourceContainer->removeClient(object); |
| 80 (*it)->removeClient(object); | |
| 81 } | 79 } |
| 82 | 80 |
| 83 static inline SVGResourcesCache* resourcesCacheFromRenderObject(const RenderObje ct* renderer) | 81 static inline SVGResourcesCache* resourcesCacheFromRenderObject(const RenderObje ct* renderer) |
| 84 { | 82 { |
| 85 Document& document = renderer->document(); | 83 Document& document = renderer->document(); |
| 86 | 84 |
| 87 SVGDocumentExtensions& extensions = document.accessSVGExtensions(); | 85 SVGDocumentExtensions& extensions = document.accessSVGExtensions(); |
| 88 SVGResourcesCache* cache = extensions.resourcesCache(); | 86 SVGResourcesCache* cache = extensions.resourcesCache(); |
| 89 ASSERT(cache); | 87 ASSERT(cache); |
| 90 | 88 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 177 } | 175 } |
| 178 | 176 |
| 179 void SVGResourcesCache::resourceDestroyed(RenderSVGResourceContainer* resource) | 177 void SVGResourcesCache::resourceDestroyed(RenderSVGResourceContainer* resource) |
| 180 { | 178 { |
| 181 ASSERT(resource); | 179 ASSERT(resource); |
| 182 SVGResourcesCache* cache = resourcesCacheFromRenderObject(resource); | 180 SVGResourcesCache* cache = resourcesCacheFromRenderObject(resource); |
| 183 | 181 |
| 184 // The resource itself may have clients, that need to be notified. | 182 // The resource itself may have clients, that need to be notified. |
| 185 cache->removeResourcesFromRenderObject(resource); | 183 cache->removeResourcesFromRenderObject(resource); |
| 186 | 184 |
| 187 CacheMap::iterator end = cache->m_cache.end(); | 185 for (auto& it : cache->m_cache) { |
|
Nico
2014/09/25 21:23:34
why "it"?
Savago
2014/09/25 21:41:43
The original code used 'it' (I'm assuming for 'ite
| |
| 188 for (CacheMap::iterator it = cache->m_cache.begin(); it != end; ++it) { | 186 it.value->resourceDestroyed(resource); |
| 189 it->value->resourceDestroyed(resource); | |
| 190 | 187 |
| 191 // Mark users of destroyed resources as pending resolution based on the id of the old resource. | 188 // Mark users of destroyed resources as pending resolution based on the id of the old resource. |
| 192 Element* resourceElement = resource->element(); | 189 Element* resourceElement = resource->element(); |
| 193 Element* clientElement = toElement(it->key->node()); | 190 Element* clientElement = toElement(it.key->node()); |
| 194 SVGDocumentExtensions& extensions = clientElement->document().accessSVGE xtensions(); | 191 SVGDocumentExtensions& extensions = clientElement->document().accessSVGE xtensions(); |
| 195 | 192 |
| 196 extensions.addPendingResource(resourceElement->fastGetAttribute(HTMLName s::idAttr), clientElement); | 193 extensions.addPendingResource(resourceElement->fastGetAttribute(HTMLName s::idAttr), clientElement); |
| 197 } | 194 } |
| 198 } | 195 } |
| 199 | 196 |
| 200 } | 197 } |
| OLD | NEW |