| Index: third_party/WebKit/Source/core/svg/SVGUseElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
|
| index 01ac2abe3265f32799e1240e224e8d710abfcdcc..4e5725217cd392a5b434ffe46548b1ece4d47e3d 100644
|
| --- a/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
|
| +++ b/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
|
| @@ -66,6 +66,10 @@ inline SVGUseElement::SVGUseElement(Document& document)
|
| addToPropertyMap(m_y);
|
| addToPropertyMap(m_width);
|
| addToPropertyMap(m_height);
|
| +
|
| +#if ENABLE(OILPAN)
|
| + ThreadState::current()->registerPreFinalizer(this);
|
| +#endif
|
| }
|
|
|
| PassRefPtrWillBeRawPtr<SVGUseElement> SVGUseElement::create(Document& document)
|
| @@ -78,14 +82,19 @@ PassRefPtrWillBeRawPtr<SVGUseElement> SVGUseElement::create(Document& document)
|
|
|
| SVGUseElement::~SVGUseElement()
|
| {
|
| - setDocumentResource(0);
|
| #if !ENABLE(OILPAN)
|
| clearShadowTree();
|
| cancelShadowTreeRecreation();
|
| svgUseLoadEventSender().cancelEvent(this);
|
| + dispose();
|
| #endif
|
| }
|
|
|
| +void SVGUseElement::dispose()
|
| +{
|
| + setDocumentResource(nullptr);
|
| +}
|
| +
|
| DEFINE_TRACE(SVGUseElement)
|
| {
|
| visitor->trace(m_x);
|
| @@ -93,6 +102,7 @@ DEFINE_TRACE(SVGUseElement)
|
| visitor->trace(m_width);
|
| visitor->trace(m_height);
|
| visitor->trace(m_targetElementInstance);
|
| + visitor->trace(m_resource);
|
| SVGGraphicsElement::trace(visitor);
|
| SVGURIReference::trace(visitor);
|
| }
|
| @@ -233,7 +243,7 @@ void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName)
|
| setDocumentResource(DocumentResource::fetchSVGDocument(request, document().fetcher()));
|
| }
|
| } else {
|
| - setDocumentResource(0);
|
| + setDocumentResource(nullptr);
|
| }
|
|
|
| invalidateShadowTree();
|
| @@ -809,7 +819,7 @@ bool SVGUseElement::instanceTreeIsLoading(const SVGElement* targetInstance)
|
| return false;
|
| }
|
|
|
| -void SVGUseElement::setDocumentResource(ResourcePtr<DocumentResource> resource)
|
| +void SVGUseElement::setDocumentResource(PassRefPtrWillBeRawPtr<DocumentResource> resource)
|
| {
|
| if (m_resource == resource)
|
| return;
|
|
|