mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-15 14:25:52 +00:00
Bug 1286150 - Part 1: Simplify AddTransformTranslate and reuse AddCSSValuePixelPercentCalc. r=hiro
Two things in this patch: 1. Move AddCSSValuePixelPercentCalc to the position above AddTransformTranslate. 2. Simplify AddTransformTranslate, i.e. re-use the same switch case of AddCSSValuePixelPercentCalc. MozReview-Commit-ID: BMEpkOHDoaT --HG-- extra : rebase_source : 591da977266c5be01fdb5f27aa11e26f94fc6060
This commit is contained in:
parent
11a3ebddba
commit
360bd35d49
@ -604,30 +604,59 @@ AddCSSValuePixel(double aCoeff1, const nsCSSValue &aValue1,
|
||||
eCSSUnit_Pixel);
|
||||
}
|
||||
|
||||
static bool
|
||||
AddCSSValuePixelPercentCalc(const uint32_t aValueRestrictions,
|
||||
const nsCSSUnit aCommonUnit,
|
||||
double aCoeff1, const nsCSSValue &aValue1,
|
||||
double aCoeff2, const nsCSSValue &aValue2,
|
||||
nsCSSValue &aResult)
|
||||
{
|
||||
switch (aCommonUnit) {
|
||||
case eCSSUnit_Pixel:
|
||||
AddCSSValuePixel(aCoeff1, aValue1,
|
||||
aCoeff2, aValue2,
|
||||
aResult, aValueRestrictions);
|
||||
break;
|
||||
case eCSSUnit_Percent:
|
||||
AddCSSValuePercent(aCoeff1, aValue1,
|
||||
aCoeff2, aValue2,
|
||||
aResult, aValueRestrictions);
|
||||
break;
|
||||
case eCSSUnit_Calc:
|
||||
AddCSSValueCanonicalCalc(aCoeff1, aValue1,
|
||||
aCoeff2, aValue2,
|
||||
aResult);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void
|
||||
AddTransformTranslate(double aCoeff1, const nsCSSValue &aValue1,
|
||||
double aCoeff2, const nsCSSValue &aValue2,
|
||||
nsCSSValue &aResult)
|
||||
{
|
||||
// Only three possible units: eCSSUnit_Pixel, eCSSUnit_Percent, or
|
||||
// eCSSUnit_Calc.
|
||||
MOZ_ASSERT(aValue1.GetUnit() == eCSSUnit_Percent ||
|
||||
aValue1.GetUnit() == eCSSUnit_Pixel ||
|
||||
aValue1.IsCalcUnit(),
|
||||
"unexpected unit");
|
||||
aValue1.IsCalcUnit(),
|
||||
"unexpected unit");
|
||||
MOZ_ASSERT(aValue2.GetUnit() == eCSSUnit_Percent ||
|
||||
aValue2.GetUnit() == eCSSUnit_Pixel ||
|
||||
aValue2.IsCalcUnit(),
|
||||
"unexpected unit");
|
||||
|
||||
if (aValue1.GetUnit() != aValue2.GetUnit() || aValue1.IsCalcUnit()) {
|
||||
// different units; create a calc() expression
|
||||
AddCSSValueCanonicalCalc(aCoeff1, aValue1, aCoeff2, aValue2, aResult);
|
||||
} else if (aValue1.GetUnit() == eCSSUnit_Percent) {
|
||||
// both percent
|
||||
AddCSSValuePercent(aCoeff1, aValue1, aCoeff2, aValue2, aResult);
|
||||
} else {
|
||||
// both pixels
|
||||
AddCSSValuePixel(aCoeff1, aValue1, aCoeff2, aValue2, aResult);
|
||||
}
|
||||
AddCSSValuePixelPercentCalc(0,
|
||||
(aValue1.GetUnit() != aValue2.GetUnit() ||
|
||||
aValue1.IsCalcUnit())
|
||||
? eCSSUnit_Calc
|
||||
: aValue1.GetUnit(),
|
||||
aCoeff1, aValue1,
|
||||
aCoeff2, aValue2,
|
||||
aResult);
|
||||
}
|
||||
|
||||
// CLASS METHODS
|
||||
@ -1541,36 +1570,6 @@ AddCSSValueNumber(double aCoeff1, const nsCSSValue &aValue1,
|
||||
eCSSUnit_Number);
|
||||
}
|
||||
|
||||
static bool
|
||||
AddCSSValuePixelPercentCalc(const uint32_t aValueRestrictions,
|
||||
const nsCSSUnit aCommonUnit,
|
||||
double aCoeff1, const nsCSSValue &aValue1,
|
||||
double aCoeff2, const nsCSSValue &aValue2,
|
||||
nsCSSValue &aResult)
|
||||
{
|
||||
switch (aCommonUnit) {
|
||||
case eCSSUnit_Pixel:
|
||||
AddCSSValuePixel(aCoeff1, aValue1,
|
||||
aCoeff2, aValue2,
|
||||
aResult, aValueRestrictions);
|
||||
break;
|
||||
case eCSSUnit_Percent:
|
||||
AddCSSValuePercent(aCoeff1, aValue1,
|
||||
aCoeff2, aValue2,
|
||||
aResult, aValueRestrictions);
|
||||
break;
|
||||
case eCSSUnit_Calc:
|
||||
AddCSSValueCanonicalCalc(aCoeff1, aValue1,
|
||||
aCoeff2, aValue2,
|
||||
aResult);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline float
|
||||
GetNumberOrPercent(const nsCSSValue &aValue)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user