Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp

Issue 1938343002: Generate a series of nested switch statements to parse CSSPrimitiveValue units. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp
diff --git a/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp b/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp
index 888ca97a67c350195d18c12fb2b5fbb94bf19434..937ad18caa62d8e881729676b8fb9b22269757a2 100644
--- a/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp
@@ -23,6 +23,7 @@
#include "core/css/CSSCalculationValue.h"
#include "core/css/CSSHelper.h"
#include "core/css/CSSMarkup.h"
+#include "core/css/CSSPrimitiveValueUnitTrie.h"
#include "core/css/CSSToLengthConversionData.h"
#include "core/css/StyleSheetContents.h"
#include "core/dom/Node.h"
@@ -44,48 +45,6 @@ namespace {
const int maxValueForCssLength = INT_MAX / kFixedPointDenominator - 2;
const int minValueForCssLength = INT_MIN / kFixedPointDenominator + 2;
-using StringToUnitTable = HashMap<String, CSSPrimitiveValue::UnitType>;
-
-StringToUnitTable createStringToUnitTable()
-{
- StringToUnitTable table;
- table.set(String("em"), CSSPrimitiveValue::UnitType::Ems);
- table.set(String("ex"), CSSPrimitiveValue::UnitType::Exs);
- table.set(String("px"), CSSPrimitiveValue::UnitType::Pixels);
- table.set(String("cm"), CSSPrimitiveValue::UnitType::Centimeters);
- table.set(String("mm"), CSSPrimitiveValue::UnitType::Millimeters);
- table.set(String("in"), CSSPrimitiveValue::UnitType::Inches);
- table.set(String("pt"), CSSPrimitiveValue::UnitType::Points);
- table.set(String("pc"), CSSPrimitiveValue::UnitType::Picas);
- table.set(String(""), CSSPrimitiveValue::UnitType::UserUnits);
- table.set(String("deg"), CSSPrimitiveValue::UnitType::Degrees);
- table.set(String("rad"), CSSPrimitiveValue::UnitType::Radians);
- table.set(String("grad"), CSSPrimitiveValue::UnitType::Gradians);
- table.set(String("ms"), CSSPrimitiveValue::UnitType::Milliseconds);
- table.set(String("s"), CSSPrimitiveValue::UnitType::Seconds);
- table.set(String("hz"), CSSPrimitiveValue::UnitType::Hertz);
- table.set(String("khz"), CSSPrimitiveValue::UnitType::Kilohertz);
- table.set(String("dpi"), CSSPrimitiveValue::UnitType::DotsPerInch);
- table.set(String("dpcm"), CSSPrimitiveValue::UnitType::DotsPerCentimeter);
- table.set(String("dppx"), CSSPrimitiveValue::UnitType::DotsPerPixel);
- table.set(String("vw"), CSSPrimitiveValue::UnitType::ViewportWidth);
- table.set(String("vh"), CSSPrimitiveValue::UnitType::ViewportHeight);
- table.set(String("vmin"), CSSPrimitiveValue::UnitType::ViewportMin);
- table.set(String("vmax"), CSSPrimitiveValue::UnitType::ViewportMax);
- table.set(String("rem"), CSSPrimitiveValue::UnitType::Rems);
- table.set(String("fr"), CSSPrimitiveValue::UnitType::Fraction);
- table.set(String("turn"), CSSPrimitiveValue::UnitType::Turns);
- table.set(String("ch"), CSSPrimitiveValue::UnitType::Chs);
- table.set(String("__qem"), CSSPrimitiveValue::UnitType::QuirkyEms);
- return table;
-}
-
-StringToUnitTable& unitTable()
-{
- DEFINE_STATIC_LOCAL(StringToUnitTable, unitTable, (createStringToUnitTable()));
- return unitTable;
-}
-
} // namespace
float CSSPrimitiveValue::clampToCSSLengthRange(double value)
@@ -93,18 +52,6 @@ float CSSPrimitiveValue::clampToCSSLengthRange(double value)
return clampTo<float>(value, minValueForCssLength, maxValueForCssLength);
}
-void CSSPrimitiveValue::initUnitTable()
-{
- // Make sure we initialize this during blink initialization
- // to avoid racy static local initialization.
- unitTable();
-}
-
-CSSPrimitiveValue::UnitType CSSPrimitiveValue::fromName(const String& unit)
-{
- return unitTable().get(unit.lower());
-}
-
CSSPrimitiveValue::UnitCategory CSSPrimitiveValue::unitTypeToUnitCategory(UnitType type)
{
switch (type) {

Powered by Google App Engine
This is Rietveld 408576698