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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 { | 162 { |
163 ASSERT(layoutObject); | 163 ASSERT(layoutObject); |
164 | 164 |
165 SVGResources* resources = cachedResourcesForLayoutObject(layoutObject); | 165 SVGResources* resources = cachedResourcesForLayoutObject(layoutObject); |
166 if (resources) | 166 if (resources) |
167 resources->removeClientFromCache(layoutObject); | 167 resources->removeClientFromCache(layoutObject); |
168 SVGResourcesCache& cache = resourcesCache(layoutObject->document()); | 168 SVGResourcesCache& cache = resourcesCache(layoutObject->document()); |
169 cache.removeResourcesFromLayoutObject(layoutObject); | 169 cache.removeResourcesFromLayoutObject(layoutObject); |
170 } | 170 } |
171 | 171 |
172 void SVGResourcesCache::resourceDestroyed(LayoutSVGResourceContainer* resource) | |
173 { | |
174 ASSERT(resource); | |
175 SVGResourcesCache& cache = resourcesCache(resource->document()); | |
176 | |
177 // The resource itself may have clients, that need to be notified. | |
178 cache.removeResourcesFromLayoutObject(resource); | |
179 | |
180 for (auto& objectResources : cache.m_cache) { | |
181 objectResources.value->resourceDestroyed(resource); | |
182 | |
183 // Mark users of destroyed resources as pending resolution based on the
id of the old resource. | |
184 Element* resourceElement = resource->element(); | |
185 Element* clientElement = toElement(objectResources.key->node()); | |
186 SVGDocumentExtensions& extensions = clientElement->document().accessSVGE
xtensions(); | |
187 | |
188 extensions.addPendingResource(resourceElement->fastGetAttribute(HTMLName
s::idAttr), clientElement); | |
189 } | |
190 } | 172 } |
191 | |
192 } | |
OLD | NEW |