{ NodePtr n; n.ptr = 0; return n; }
NodePtr duplicateNode(NodePtr node) const
{ return node; }
+ void freeNode(NodePtr) const
+ { }
private:
mutable QHash<const QWidget *, QHash<QString, QString> > m_attributeCache;
if (sel.relationToNext == BasicSelector::MatchNextSelectorIfAncestor
|| sel.relationToNext == BasicSelector::MatchNextSelectorIfParent) {
- node = parentNode(node);
+ NodePtr nextParent = parentNode(node);
+ freeNode(node);
+ node = nextParent;
} else if (sel.relationToNext == BasicSelector::MatchNextSelectorIfPreceeds) {
- node = previousSiblingNode(node);
+ NodePtr previousSibling = previousSiblingNode(node);
+ freeNode(node);
+ node = previousSibling;
}
if (isNullNode(node)) {
match = false;
}
} while (i >= 0 && (match || sel.relationToNext == BasicSelector::MatchNextSelectorIfAncestor));
+ freeNode(node);
return match;
}
virtual NodePtr parentNode(NodePtr node) const = 0;
virtual NodePtr previousSiblingNode(NodePtr node) const = 0;
virtual NodePtr duplicateNode(NodePtr node) const = 0;
+ virtual void freeNode(NodePtr node) const = 0;
QVector<StyleSheet> styleSheets;
QString medium;
virtual NodePtr parentNode(NodePtr node) const;
virtual NodePtr previousSiblingNode(NodePtr node) const;
virtual NodePtr duplicateNode(NodePtr node) const;
+ virtual void freeNode(NodePtr node) const;
private:
const QTextHtmlParser *parser;
return sibling;
}
+void QTextHtmlStyleSelector::freeNode(NodePtr) const
+{
+}
+
void QTextHtmlParser::resolveStyleSheetImports(const QCss::StyleSheet &sheet)
{
for (int i = 0; i < sheet.importRules.count(); ++i) {
n.id = node.id;
return n;
}
+ virtual void freeNode(NodePtr node) const
+ {
+ Q_UNUSED(node);
+ }
};
// '0' is 0x30 and '9' is 0x39