From: Ivailo Monev Date: Sat, 20 Jun 2020 16:36:11 +0000 (+0000) Subject: Revert "remove unused StyleSelector::freeNode()" X-Git-Tag: 4.12.0~3755 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5b7672d90e1bdd2db455a9f147d27f8aaa409cac;p=kde%2FKatie.git Revert "remove unused StyleSelector::freeNode()" This reverts commit 0ecbc71d82bbdfb41953229981f4dd9cd9654d24. used by selector in CSS parser test --- diff --git a/src/gui/styles/qstylesheetstyle.cpp b/src/gui/styles/qstylesheetstyle.cpp index c8c1924f0..0e4c48437 100644 --- a/src/gui/styles/qstylesheetstyle.cpp +++ b/src/gui/styles/qstylesheetstyle.cpp @@ -1480,6 +1480,8 @@ public: { NodePtr n; n.ptr = 0; return n; } NodePtr duplicateNode(NodePtr node) const { return node; } + void freeNode(NodePtr) const + { } private: mutable QHash > m_attributeCache; diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index 759a32697..af5fb8a9f 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -1824,9 +1824,13 @@ bool StyleSelector::selectorMatches(const Selector &selector, NodePtr node) 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; @@ -1834,6 +1838,7 @@ bool StyleSelector::selectorMatches(const Selector &selector, NodePtr node) } } while (i >= 0 && (match || sel.relationToNext == BasicSelector::MatchNextSelectorIfAncestor)); + freeNode(node); return match; } diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h index 828545991..81b903fdf 100644 --- a/src/gui/text/qcssparser_p.h +++ b/src/gui/text/qcssparser_p.h @@ -649,6 +649,7 @@ public: 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 styleSheets; QString medium; diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp index f0c2a522f..a4068bb09 100644 --- a/src/gui/text/qtexthtmlparser.cpp +++ b/src/gui/text/qtexthtmlparser.cpp @@ -1729,6 +1729,7 @@ public: 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; @@ -1803,6 +1804,10 @@ QCss::StyleSelector::NodePtr QTextHtmlStyleSelector::previousSiblingNode(NodePtr return sibling; } +void QTextHtmlStyleSelector::freeNode(NodePtr) const +{ +} + void QTextHtmlParser::resolveStyleSheetImports(const QCss::StyleSheet &sheet) { for (int i = 0; i < sheet.importRules.count(); ++i) { diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp index f701b20c5..5f2aa2886 100644 --- a/src/svg/qsvghandler.cpp +++ b/src/svg/qsvghandler.cpp @@ -463,6 +463,10 @@ public: n.id = node.id; return n; } + virtual void freeNode(NodePtr node) const + { + Q_UNUSED(node); + } }; // '0' is 0x30 and '9' is 0x39