Commit 639bc7aa authored by timloh@chromium.org's avatar timloh@chromium.org

Remove CSSParserValue::createCSSValue and unused callers

The function CSSParserValue::createCSSValue is only actually used by
calc parsing, although we can more easily do the same thing there in
much less code.

BUG=404023

Review URL: https://codereview.chromium.org/470903003

git-svn-id: svn://svn.chromium.org/blink/trunk@180325 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 51bed69d
......@@ -644,18 +644,18 @@ private:
bool parseValue(CSSParserValueList* tokens, unsigned* index, Value* result)
{
CSSParserValue* parserValue = tokens->valueAt(*index);
if (parserValue->unit == CSSParserValue::Operator)
if (parserValue->unit >= CSSParserValue::Operator)
return false;
RefPtrWillBeRawPtr<CSSValue> value = parserValue->createCSSValue();
if (!value || !value->isPrimitiveValue())
CSSPrimitiveValue::UnitType type = static_cast<CSSPrimitiveValue::UnitType>(parserValue->unit);
if (unitCategory(type) == CalcOther)
return false;
CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value.get());
if (unitCategory(primitiveValue->primitiveType()) == CalcOther)
return false;
if (type == CSSPrimitiveValue::CSS_NUMBER && parserValue->isInt)
type = CSSPrimitiveValue::CSS_PARSER_INTEGER;
result->value = CSSCalcPrimitiveValue::create(primitiveValue, parserValue->isInt);
result->value = CSSCalcPrimitiveValue::create(
CSSPrimitiveValue::create(parserValue->fValue, type), parserValue->isInt);
++*index;
return true;
......
......@@ -27,19 +27,10 @@
#include "core/css/CSSFunctionValue.h"
#include "core/css/CSSValueList.h"
#include "core/css/parser/CSSParserValues.h"
#include "wtf/text/StringBuilder.h"
namespace blink {
CSSFunctionValue::CSSFunctionValue(CSSParserFunction* function)
: CSSValue(FunctionClass)
, m_name(function->name)
{
if (function->args)
m_args = CSSValueList::createFromParserValueList(function->args.get());
}
CSSFunctionValue::CSSFunctionValue(String name, PassRefPtrWillBeRawPtr<CSSValueList> args)
: CSSValue(FunctionClass)
, m_name(name)
......
......@@ -31,15 +31,9 @@
namespace blink {
class CSSValueList;
struct CSSParserFunction;
class CSSFunctionValue : public CSSValue {
public:
static PassRefPtrWillBeRawPtr<CSSFunctionValue> create(CSSParserFunction* function)
{
return adoptRefWillBeNoop(new CSSFunctionValue(function));
}
static PassRefPtrWillBeRawPtr<CSSFunctionValue> create(String name, PassRefPtrWillBeRawPtr<CSSValueList> args)
{
return adoptRefWillBeNoop(new CSSFunctionValue(name, args));
......@@ -54,7 +48,6 @@ public:
void traceAfterDispatch(Visitor*);
private:
explicit CSSFunctionValue(CSSParserFunction*);
CSSFunctionValue(String, PassRefPtrWillBeRawPtr<CSSValueList>);
String m_name;
......
......@@ -38,17 +38,6 @@ CSSValueList::CSSValueList(ValueListSeparator listSeparator)
m_valueListSeparator = listSeparator;
}
CSSValueList::CSSValueList(CSSParserValueList* parserValues)
: CSSValue(ValueListClass)
{
m_valueListSeparator = SpaceSeparator;
if (parserValues) {
m_values.reserveInitialCapacity(parserValues->size());
for (unsigned i = 0; i < parserValues->size(); ++i)
m_values.uncheckedAppend(parserValues->valueAt(i)->createCSSValue());
}
}
bool CSSValueList::removeAll(CSSValue* val)
{
bool found = false;
......
......@@ -27,8 +27,6 @@
namespace blink {
class CSSParserValueList;
class CSSValueList : public CSSValue {
public:
static PassRefPtrWillBeRawPtr<CSSValueList> createCommaSeparated()
......@@ -43,10 +41,6 @@ public:
{
return adoptRefWillBeNoop(new CSSValueList(SlashSeparator));
}
static PassRefPtrWillBeRawPtr<CSSValueList> createFromParserValueList(CSSParserValueList* list)
{
return adoptRefWillBeNoop(new CSSValueList(list));
}
size_t length() const { return m_values.size(); }
CSSValue* item(size_t index) { return m_values[index].get(); }
......@@ -75,7 +69,6 @@ protected:
private:
explicit CSSValueList(ValueListSeparator);
explicit CSSValueList(CSSParserValueList*);
WillBeHeapVector<RefPtrWillBeMember<CSSValue>, 4> m_values;
};
......
......@@ -68,84 +68,6 @@ void CSSParserValueList::stealValues(CSSParserValueList& valueList)
valueList.clearAndLeakValues();
}
PassRefPtrWillBeRawPtr<CSSValue> CSSParserValue::createCSSValue()
{
if (id)
return CSSPrimitiveValue::createIdentifier(id);
if (unit == CSSParserValue::Operator)
return CSSPrimitiveValue::createParserOperator(iValue);
if (unit == CSSParserValue::Function)
return CSSFunctionValue::create(function);
if (unit == CSSParserValue::ValueList)
return CSSValueList::createFromParserValueList(valueList);
if (unit >= CSSParserValue::Q_EMS)
return CSSPrimitiveValue::createAllowingMarginQuirk(fValue, CSSPrimitiveValue::CSS_EMS);
CSSPrimitiveValue::UnitType primitiveUnit = static_cast<CSSPrimitiveValue::UnitType>(unit);
switch (primitiveUnit) {
case CSSPrimitiveValue::CSS_IDENT:
case CSSPrimitiveValue::CSS_PROPERTY_ID:
case CSSPrimitiveValue::CSS_VALUE_ID:
return CSSPrimitiveValue::create(string, CSSPrimitiveValue::CSS_PARSER_IDENTIFIER);
case CSSPrimitiveValue::CSS_NUMBER:
return CSSPrimitiveValue::create(fValue, isInt ? CSSPrimitiveValue::CSS_PARSER_INTEGER : CSSPrimitiveValue::CSS_NUMBER);
case CSSPrimitiveValue::CSS_STRING:
case CSSPrimitiveValue::CSS_URI:
case CSSPrimitiveValue::CSS_PARSER_HEXCOLOR:
return CSSPrimitiveValue::create(string, primitiveUnit);
case CSSPrimitiveValue::CSS_PERCENTAGE:
case CSSPrimitiveValue::CSS_EMS:
case CSSPrimitiveValue::CSS_EXS:
case CSSPrimitiveValue::CSS_PX:
case CSSPrimitiveValue::CSS_CM:
case CSSPrimitiveValue::CSS_MM:
case CSSPrimitiveValue::CSS_IN:
case CSSPrimitiveValue::CSS_PT:
case CSSPrimitiveValue::CSS_PC:
case CSSPrimitiveValue::CSS_DEG:
case CSSPrimitiveValue::CSS_RAD:
case CSSPrimitiveValue::CSS_GRAD:
case CSSPrimitiveValue::CSS_MS:
case CSSPrimitiveValue::CSS_S:
case CSSPrimitiveValue::CSS_HZ:
case CSSPrimitiveValue::CSS_KHZ:
case CSSPrimitiveValue::CSS_VW:
case CSSPrimitiveValue::CSS_VH:
case CSSPrimitiveValue::CSS_VMIN:
case CSSPrimitiveValue::CSS_VMAX:
case CSSPrimitiveValue::CSS_TURN:
case CSSPrimitiveValue::CSS_REMS:
case CSSPrimitiveValue::CSS_CHS:
case CSSPrimitiveValue::CSS_FR:
return CSSPrimitiveValue::create(fValue, primitiveUnit);
case CSSPrimitiveValue::CSS_UNKNOWN:
case CSSPrimitiveValue::CSS_DIMENSION:
case CSSPrimitiveValue::CSS_ATTR:
case CSSPrimitiveValue::CSS_COUNTER:
case CSSPrimitiveValue::CSS_RECT:
case CSSPrimitiveValue::CSS_RGBCOLOR:
case CSSPrimitiveValue::CSS_DPPX:
case CSSPrimitiveValue::CSS_DPI:
case CSSPrimitiveValue::CSS_DPCM:
case CSSPrimitiveValue::CSS_PAIR:
case CSSPrimitiveValue::CSS_UNICODE_RANGE:
case CSSPrimitiveValue::CSS_PARSER_INTEGER:
case CSSPrimitiveValue::CSS_PARSER_IDENTIFIER:
case CSSPrimitiveValue::CSS_PARSER_OPERATOR:
case CSSPrimitiveValue::CSS_COUNTER_NAME:
case CSSPrimitiveValue::CSS_SHAPE:
case CSSPrimitiveValue::CSS_QUAD:
case CSSPrimitiveValue::CSS_CALC:
case CSSPrimitiveValue::CSS_CALC_PERCENTAGE_WITH_NUMBER:
case CSSPrimitiveValue::CSS_CALC_PERCENTAGE_WITH_LENGTH:
return nullptr;
}
ASSERT_NOT_REACHED();
return nullptr;
}
CSSParserSelector::CSSParserSelector()
: m_selector(adoptPtr(new CSSSelector()))
{
......
......@@ -136,6 +136,7 @@ template <>
inline const UChar* CSSParserString::characters<UChar>() const { return characters16(); }
struct CSSParserFunction;
class CSSParserValueList;
struct CSSParserValue {
CSSValueID id;
......@@ -158,8 +159,6 @@ struct CSSParserValue {
inline void setFromNumber(double value, int unit = CSSPrimitiveValue::CSS_NUMBER);
inline void setFromFunction(CSSParserFunction*);
inline void setFromValueList(PassOwnPtr<CSSParserValueList>);
PassRefPtrWillBeRawPtr<CSSValue> createCSSValue();
};
class CSSParserValueList {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment