Index: Source/core/svg/SVGUseElement.cpp |
diff --git a/Source/core/svg/SVGUseElement.cpp b/Source/core/svg/SVGUseElement.cpp |
index 590edddccdae3aeeda356c236e5b14779c24226b..591430b60866d54885bf7b5fb13fae586daaa4cd 100644 |
--- a/Source/core/svg/SVGUseElement.cpp |
+++ b/Source/core/svg/SVGUseElement.cpp |
@@ -110,7 +110,7 @@ SVGElementInstance* SVGUseElement::instanceRoot() |
// wait for the lazy creation to happen if e.g. JS wants to access the instanceRoot |
// object right after creating the element on-the-fly |
if (!m_targetElementInstance) |
- document()->updateLayoutIgnorePendingStylesheets(); |
+ document().updateLayoutIgnorePendingStylesheets(); |
return m_targetElementInstance.get(); |
} |
@@ -172,8 +172,8 @@ Node::InsertionNotificationRequest SVGUseElement::insertedInto(ContainerNode* ro |
SVGGraphicsElement::insertedInto(rootParent); |
if (!rootParent->inDocument()) |
return InsertionDone; |
- ASSERT(!m_targetElementInstance || !isWellFormedDocument(document())); |
- ASSERT(!hasPendingResources() || !isWellFormedDocument(document())); |
+ ASSERT(!m_targetElementInstance || !isWellFormedDocument(&document())); |
+ ASSERT(!hasPendingResources() || !isWellFormedDocument(&document())); |
if (!m_wasInsertedByParser) |
buildPendingResource(); |
SVGExternalResourcesRequired::insertedIntoDocument(this); |
@@ -189,8 +189,8 @@ void SVGUseElement::removedFrom(ContainerNode* rootParent) |
Document* SVGUseElement::referencedDocument() const |
{ |
- if (!isExternalURIReference(hrefCurrentValue(), document())) |
- return document(); |
+ if (!isExternalURIReference(hrefCurrentValue(), &document())) |
+ return &document(); |
return externalDocument(); |
} |
@@ -230,12 +230,12 @@ void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName) |
return; |
if (SVGURIReference::isKnownAttribute(attrName)) { |
- bool isExternalReference = isExternalURIReference(hrefCurrentValue(), document()); |
+ bool isExternalReference = isExternalURIReference(hrefCurrentValue(), &document()); |
if (isExternalReference) { |
- KURL url = document()->completeURL(hrefCurrentValue()); |
+ KURL url = document().completeURL(hrefCurrentValue()); |
if (url.hasFragmentIdentifier()) { |
FetchRequest request(ResourceRequest(url.string()), localName()); |
- setDocumentResource(document()->fetcher()->fetchSVGDocument(request)); |
+ setDocumentResource(document().fetcher()->fetchSVGDocument(request)); |
} |
} else { |
setDocumentResource(0); |
@@ -394,8 +394,7 @@ void SVGUseElement::clearResourceReferences() |
m_needsShadowTreeRecreation = false; |
- ASSERT(document()); |
- document()->accessSVGExtensions()->removeAllTargetReferencesForElement(this); |
+ document().accessSVGExtensions()->removeAllTargetReferencesForElement(this); |
} |
void SVGUseElement::buildPendingResource() |
@@ -407,7 +406,7 @@ void SVGUseElement::buildPendingResource() |
return; |
String id; |
- Element* target = SVGURIReference::targetElementFromIRIString(hrefCurrentValue(), document(), &id, externalDocument()); |
+ Element* target = SVGURIReference::targetElementFromIRIString(hrefCurrentValue(), &document(), &id, externalDocument()); |
if (!target || !target->inDocument()) { |
// If we can't find the target of an external element, just give up. |
// We can't observe if the target somewhen enters the external document, nor should we do it. |
@@ -553,10 +552,10 @@ void SVGUseElement::toClipPath(Path& path) |
return; |
if (n->isSVGElement() && toSVGElement(n)->isSVGGraphicsElement()) { |
- if (!isDirectReference(n)) |
+ if (!isDirectReference(n)) { |
// Spec: Indirect references are an error (14.3.5) |
- document()->accessSVGExtensions()->reportError("Not allowed to use indirect reference in <clip-path>"); |
- else { |
+ document().accessSVGExtensions()->reportError("Not allowed to use indirect reference in <clip-path>"); |
+ } else { |
toSVGGraphicsElement(n)->toClipPath(path); |
// FIXME: Avoid manual resolution of x/y here. Its potentially harmful. |
SVGLengthContext lengthContext(this); |
@@ -595,8 +594,7 @@ void SVGUseElement::buildInstanceTree(SVGElement* target, SVGElementInstance* ta |
// We only need to track first degree <use> dependencies. Indirect references are handled |
// as the invalidation bubbles up the dependency chain. |
if (!foundUse) { |
- ASSERT(document()); |
- document()->accessSVGExtensions()->addElementReferencingTarget(this, target); |
+ document().accessSVGExtensions()->addElementReferencingTarget(this, target); |
foundUse = true; |
} |
} else if (isDisallowedElement(target)) { |
@@ -659,7 +657,7 @@ bool SVGUseElement::hasCycleUseReferencing(SVGUseElement* use, SVGElementInstanc |
while (instance) { |
SVGElement* element = instance->correspondingElement(); |
- if (element->hasID() && element->getIdAttribute() == targetId && element->document() == newTarget->document()) |
+ if (element->hasID() && element->getIdAttribute() == targetId && &element->document() == &newTarget->document()) |
return true; |
instance = instance->parentNode(); |