Index: WebCore/xml/XSLStyleSheetLibxslt.cpp |
=================================================================== |
--- WebCore/xml/XSLStyleSheetLibxslt.cpp (revision 78365) |
+++ WebCore/xml/XSLStyleSheetLibxslt.cpp (working copy) |
@@ -57,6 +57,7 @@ |
XSLStyleSheet::XSLStyleSheet(XSLImportRule* parentRule, const String& originalURL, const KURL& finalURL) |
: StyleSheet(parentRule, originalURL, finalURL) |
+ , m_ownerDocument(0) |
, m_embedded(false) |
, m_processed(false) // Child sheets get marked as processed when the libxslt engine has finally seen them. |
, m_stylesheetDoc(0) |
@@ -67,6 +68,7 @@ |
XSLStyleSheet::XSLStyleSheet(Node* parentNode, const String& originalURL, const KURL& finalURL, bool embedded) |
: StyleSheet(parentNode, originalURL, finalURL) |
+ , m_ownerDocument(parentNode->document()) |
, m_embedded(embedded) |
, m_processed(true) // The root sheet starts off processed. |
, m_stylesheetDoc(0) |
@@ -128,10 +130,9 @@ |
CachedResourceLoader* XSLStyleSheet::cachedResourceLoader() |
{ |
- Document* document = ownerDocument(); |
- if (!document) |
+ if (!m_ownerDocument) |
return 0; |
- return document->cachedResourceLoader(); |
+ return m_ownerDocument->cachedResourceLoader(); |
} |
bool XSLStyleSheet::parseString(const String& string, bool) |
@@ -257,18 +258,10 @@ |
void XSLStyleSheet::setParentStyleSheet(XSLStyleSheet* parent) |
{ |
m_parentStyleSheet = parent; |
+ if (parent) |
+ m_ownerDocument = parent->ownerDocument(); |
} |
-Document* XSLStyleSheet::ownerDocument() |
-{ |
- for (XSLStyleSheet* styleSheet = this; styleSheet; styleSheet = styleSheet->parentStyleSheet()) { |
- Node* node = styleSheet->ownerNode(); |
- if (node) |
- return node->document(); |
- } |
- return 0; |
-} |
- |
xmlDocPtr XSLStyleSheet::locateStylesheetSubResource(xmlDocPtr parentDoc, const xmlChar* uri) |
{ |
bool matchedParent = (parentDoc == document()); |