Clamp the result to the valid nscoord range. b=541869 r=roc

This commit is contained in:
Mats Palmgren 2010-01-27 09:35:41 +01:00
Родитель 81dc5c2928
Коммит 3a13782de3
1 изменённых файлов: 6 добавлений и 3 удалений

Просмотреть файл

@ -2191,7 +2191,8 @@ nsLayoutUtils::ComputeWidthDependentValue(
return aCoord.GetCoordValue();
}
if (eStyleUnit_Percent == aCoord.GetUnit()) {
return NSToCoordFloor(aContainingBlockWidth * aCoord.GetPercentValue());
return NSToCoordFloorClamped(aContainingBlockWidth *
aCoord.GetPercentValue());
}
NS_ASSERTION(aCoord.GetUnit() == eStyleUnit_None ||
aCoord.GetUnit() == eStyleUnit_Auto,
@ -2224,7 +2225,8 @@ nsLayoutUtils::ComputeWidthValue(
result -= aContentEdgeToBoxSizing;
} else if (eStyleUnit_Percent == aCoord.GetUnit()) {
NS_ASSERTION(aCoord.GetPercentValue() >= 0.0f, "width less than zero");
result = NSToCoordFloor(aContainingBlockWidth * aCoord.GetPercentValue()) -
result = NSToCoordFloorClamped(aContainingBlockWidth *
aCoord.GetPercentValue()) -
aContentEdgeToBoxSizing;
} else if (eStyleUnit_Enumerated == aCoord.GetUnit()) {
PRInt32 val = aCoord.GetIntValue();
@ -2281,7 +2283,8 @@ nsLayoutUtils::ComputeHeightDependentValue(
"unexpected 'containing block height'");
if (NS_AUTOHEIGHT != aContainingBlockHeight) {
return NSToCoordFloor(aContainingBlockHeight * aCoord.GetPercentValue());
return NSToCoordFloorClamped(aContainingBlockHeight *
aCoord.GetPercentValue());
}
}
NS_ASSERTION(aCoord.GetUnit() == eStyleUnit_None ||