Index: Source/WebCore/css/CSSParser.cpp |
=================================================================== |
--- Source/WebCore/css/CSSParser.cpp (revision 131160) |
+++ Source/WebCore/css/CSSParser.cpp (working copy) |
@@ -9986,6 +9986,7 @@ |
return 0; |
ASSERT(!m_currentRuleDataStack->isEmpty()); |
+ m_currentRuleData.clear(); |
RefPtr<CSSRuleSourceData> data = m_currentRuleDataStack->last(); |
m_currentRuleDataStack->removeLast(); |
return data.release(); |
@@ -10290,8 +10291,14 @@ |
{ |
if (!isExtractingSourceData()) |
return; |
+ |
+ // Pop off data for a previous invalid rule. |
+ if (m_currentRuleData) |
+ m_currentRuleDataStack->removeLast(); |
+ |
RefPtr<CSSRuleSourceData> data = CSSRuleSourceData::create(ruleType); |
data->ruleHeaderRange.start = tokenStartOffset(); |
+ m_currentRuleData = data; |
m_currentRuleDataStack->append(data.release()); |
} |
@@ -10325,6 +10332,7 @@ |
{ |
if (!isExtractingSourceData()) |
return; |
+ m_currentRuleData.clear(); |
unsigned offset = tokenStartOffset(); |
if (tokenStartChar() == '{') |
++offset; // Skip the rule body opening brace. |