Chromium Code Reviews| Index: Source/core/css/CSSParserValues.cpp |
| diff --git a/Source/core/css/CSSParserValues.cpp b/Source/core/css/CSSParserValues.cpp |
| index 484272de759de25a1b11febfb763ab2920198f03..72334ec78192bb7a841c4c5a6fa79cb5e7dc6504 100644 |
| --- a/Source/core/css/CSSParserValues.cpp |
| +++ b/Source/core/css/CSSParserValues.cpp |
| @@ -29,17 +29,28 @@ namespace WebCore { |
| using namespace WTF; |
| -CSSParserValueList::~CSSParserValueList() |
| +static void destroy(Vector<CSSParserValue, 4>& values) |
| { |
| - size_t numValues = m_values.size(); |
| + size_t numValues = values.size(); |
| for (size_t i = 0; i < numValues; i++) { |
| - if (m_values[i].unit == CSSParserValue::Function) |
| - delete m_values[i].function; |
| - else if (m_values[i].unit == CSSParserValue::ValueList) |
| - delete m_values[i].valueList; |
| + if (values[i].unit == CSSParserValue::Function) |
| + delete values[i].function; |
| + else if (values[i].unit == CSSParserValue::ValueList) |
| + delete values[i].valueList; |
| } |
| } |
| +void CSSParserValueList::destroyAndClear() |
| +{ |
| + destroy(m_values); |
| + clear(); |
| +} |
| + |
| +CSSParserValueList::~CSSParserValueList() |
| +{ |
| + destroy(m_values); |
|
eseidel
2014/05/07 15:26:10
Seems like this could end up destroying twice. I
Yoav Weiss
2014/05/07 15:34:43
Yeah, and calling destroyAndClear immediately foll
|
| +} |
| + |
| void CSSParserValueList::addValue(const CSSParserValue& v) |
| { |
| m_values.append(v); |