summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/css/CSSParserValues.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/css/CSSParserValues.cpp')
-rw-r--r--Source/WebCore/css/CSSParserValues.cpp25
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);
+}
}