| Index: Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
|
| ===================================================================
|
| --- Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp (revision 85543)
|
| +++ Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp (working copy)
|
| @@ -84,8 +84,12 @@
|
| {
|
| ASSERT(client);
|
|
|
| - if (m_filter.contains(client))
|
| - delete m_filter.take(client);
|
| + if (FilterData* filterData = m_filter.get(client)) {
|
| + if (filterData->savedContext)
|
| + filterData->markedForRemoval = true;
|
| + else
|
| + delete m_filter.take(client);
|
| + }
|
|
|
| markClientForInvalidation(client, markForInvalidation ? BoundariesInvalidation : ParentOnlyInvalidation);
|
| }
|
| @@ -266,10 +270,15 @@
|
| UNUSED_PARAM(resourceMode);
|
| #endif
|
|
|
| - if (!m_filter.contains(object))
|
| + FilterData* filterData = m_filter.get(object);
|
| + if (!filterData)
|
| return;
|
|
|
| - FilterData* filterData = m_filter.get(object);
|
| + if (filterData->markedForRemoval) {
|
| + delete m_filter.take(object);
|
| + return;
|
| + }
|
| +
|
| if (!filterData->builded) {
|
| if (!filterData->savedContext) {
|
| removeClientFromCache(object);
|
|
|