diff options
Diffstat (limited to 'Source/WebCore/css/CSSParserValues.cpp')
-rw-r--r-- | Source/WebCore/css/CSSParserValues.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Source/WebCore/css/CSSParserValues.cpp b/Source/WebCore/css/CSSParserValues.cpp index 06651f1..dc0e82b 100644 --- a/Source/WebCore/css/CSSParserValues.cpp +++ b/Source/WebCore/css/CSSParserValues.cpp @@ -20,11 +20,15 @@ #include "config.h" #include "CSSParserValues.h" + #include "CSSPrimitiveValue.h" #include "CSSFunctionValue.h" #include "CSSQuirkPrimitiveValue.h" +#include "CSSSelector.h" namespace WebCore { + +using namespace WTF; CSSParserValueList::~CSSParserValueList() { @@ -70,6 +74,27 @@ PassRefPtr<CSSValue> CSSParserValue::createCSSValue() parsedValue = CSSQuirkPrimitiveValue::create(fValue, CSSPrimitiveValue::CSS_EMS); return parsedValue; } + +CSSParserSelector::CSSParserSelector() + : m_selector(adoptPtr(fastNew<CSSSelector>())) +{ +} + +CSSParserSelector::~CSSParserSelector() +{ + if (!m_tagHistory) + return; + Vector<CSSParserSelector*, 16> toDelete; + CSSParserSelector* selector = m_tagHistory.leakPtr(); + while (true) { + toDelete.append(selector); + CSSParserSelector* next = selector->m_tagHistory.leakPtr(); + if (!next) + break; + selector = next; + } + deleteAllValues(toDelete); +} } |