| 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());
|
|
|