Title: [114066] branches/subpixellayout/Source/WebCore
- Revision
- 114066
- Author
- [email protected]
- Date
- 2012-04-12 18:29:45 -0700 (Thu, 12 Apr 2012)
Log Message
Add size_t versions of multiplication and division operators to FractionalLayoutUnit and remove unneeded casts.
Modified Paths
Diff
Modified: branches/subpixellayout/Source/WebCore/platform/FractionalLayoutUnit.h (114065 => 114066)
--- branches/subpixellayout/Source/WebCore/platform/FractionalLayoutUnit.h 2012-04-13 01:26:17 UTC (rev 114065)
+++ branches/subpixellayout/Source/WebCore/platform/FractionalLayoutUnit.h 2012-04-13 01:29:45 UTC (rev 114066)
@@ -36,6 +36,10 @@
#include <math.h>
#include <stdlib.h>
+#if PLATFORM(CHROMIUM) || PLATFORM(MAC) || PLATFORM(WIN) || PLATFORM(QT)
+#define LAYOUT_UNIT_SIZE_T
+#endif
+
namespace WebCore {
static const int kFixedPointDenominator = 60;
@@ -51,6 +55,9 @@
FractionalLayoutUnit(float value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; }
FractionalLayoutUnit(double value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; }
FractionalLayoutUnit(const FractionalLayoutUnit& value) { m_value = value.rawValue(); }
+#ifdef LAYOUT_UNIT_SIZE_T
+ FractionalLayoutUnit(size_t value) { ASSERT(isInBounds(value)); m_value = static_cast<int>(value * kFixedPointDenominator); }
+#endif
inline int toInt() const { return m_value / kFixedPointDenominator; }
inline unsigned toUnsigned() const { ASSERT(m_value >= 0); return toInt(); }
@@ -126,6 +133,12 @@
{
return ::abs(value) <= std::numeric_limits<int>::max() / kFixedPointDenominator;
}
+#ifdef LAYOUT_UNIT_SIZE_T
+ inline bool isInBounds(size_t value)
+ {
+ return value <= static_cast<size_t>(std::numeric_limits<int>::max()) / kFixedPointDenominator;
+ }
+#endif
int m_value;
};
@@ -331,6 +344,13 @@
return a * FractionalLayoutUnit(b);
}
+#ifdef LAYOUT_UNIT_SIZE_T
+inline FractionalLayoutUnit operator*(const FractionalLayoutUnit& a, size_t b)
+{
+ return a * FractionalLayoutUnit(b);
+}
+#endif
+
inline FractionalLayoutUnit operator*(unsigned a, const FractionalLayoutUnit& b)
{
return FractionalLayoutUnit(a) * b;
@@ -351,6 +371,13 @@
return a * b.toDouble();
}
+#ifdef LAYOUT_UNIT_SIZE_T
+inline FractionalLayoutUnit operator*(size_t a, const FractionalLayoutUnit& b)
+{
+ return FractionalLayoutUnit(a) * b;
+}
+#endif
+
inline FractionalLayoutUnit operator/(const FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
{
FractionalLayoutUnit returnVal;
@@ -379,6 +406,13 @@
return a / FractionalLayoutUnit(b);
}
+#ifdef LAYOUT_UNIT_SIZE_T
+inline FractionalLayoutUnit operator/(const FractionalLayoutUnit& a, size_t b)
+{
+ return a / FractionalLayoutUnit(b);
+}
+#endif
+
inline float operator/(const float a, const FractionalLayoutUnit& b)
{
return a / b.toFloat();
@@ -399,6 +433,13 @@
return FractionalLayoutUnit(a) / b;
}
+#ifdef LAYOUT_UNIT_SIZE_T
+inline FractionalLayoutUnit operator/(size_t a, const FractionalLayoutUnit& b)
+{
+ return FractionalLayoutUnit(a) / b;
+}
+#endif
+
inline FractionalLayoutUnit operator+(const FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
{
FractionalLayoutUnit returnVal;
Modified: branches/subpixellayout/Source/WebCore/rendering/RenderBlock.cpp (114065 => 114066)
--- branches/subpixellayout/Source/WebCore/rendering/RenderBlock.cpp 2012-04-13 01:26:17 UTC (rev 114065)
+++ branches/subpixellayout/Source/WebCore/rendering/RenderBlock.cpp 2012-04-13 01:29:45 UTC (rev 114066)
@@ -5186,11 +5186,11 @@
ColumnInfo* colInfo = columnInfo();
LayoutUnit logicalLeft = logicalLeftOffsetForContent();
- unsigned colCount = columnCount(colInfo);
+ size_t colCount = columnCount(colInfo);
LayoutUnit colLogicalWidth = colInfo->desiredColumnWidth();
LayoutUnit colLogicalHeight = colInfo->columnHeight();
- for (unsigned i = 0; i < colCount; ++i) {
+ for (size_t i = 0; i < colCount; ++i) {
// Compute the edges for a given column in the block progression direction.
LayoutRect sliceRect = LayoutRect(logicalLeft, borderBefore() + paddingBefore() + i * colLogicalHeight, colLogicalWidth, colLogicalHeight);
if (!isHorizontalWritingMode())
Modified: branches/subpixellayout/Source/WebCore/rendering/RenderFlexibleBox.cpp (114065 => 114066)
--- branches/subpixellayout/Source/WebCore/rendering/RenderFlexibleBox.cpp 2012-04-13 01:26:17 UTC (rev 114065)
+++ branches/subpixellayout/Source/WebCore/rendering/RenderFlexibleBox.cpp 2012-04-13 01:29:45 UTC (rev 114066)
@@ -814,7 +814,7 @@
return availableFreeSpace / 2;
if (flexPack == PackDistribute) {
if (availableFreeSpace > 0 && numberOfChildren)
- return availableFreeSpace / static_cast<unsigned>(2 * numberOfChildren);
+ return availableFreeSpace / (2 * numberOfChildren);
if (availableFreeSpace < 0)
return availableFreeSpace / 2;
}
@@ -825,9 +825,9 @@
{
if (availableFreeSpace > 0 && numberOfChildren > 1) {
if (flexPack == PackJustify)
- return availableFreeSpace / static_cast<unsigned>(numberOfChildren - 1);
+ return availableFreeSpace / (numberOfChildren - 1);
if (flexPack == PackDistribute)
- return availableFreeSpace / static_cast<unsigned>(numberOfChildren);
+ return availableFreeSpace / numberOfChildren;
}
return 0;
}
@@ -977,7 +977,7 @@
return availableFreeSpace / 2;
if (linePack == LinePackDistribute) {
if (availableFreeSpace > 0 && numberOfLines)
- return availableFreeSpace / static_cast<unsigned>(2 * numberOfLines);
+ return availableFreeSpace / (2 * numberOfLines);
if (availableFreeSpace < 0)
return availableFreeSpace / 2;
}
@@ -988,9 +988,9 @@
{
if (availableFreeSpace > 0 && numberOfLines > 1) {
if (linePack == LinePackJustify)
- return availableFreeSpace / static_cast<unsigned>(numberOfLines - 1);
+ return availableFreeSpace / (numberOfLines - 1);
if (linePack == LinePackDistribute || linePack == LinePackStretch)
- return availableFreeSpace / static_cast<unsigned>(numberOfLines);
+ return availableFreeSpace / numberOfLines;
}
return 0;
}
@@ -1012,7 +1012,7 @@
adjustAlignmentForChild(child, lineOffset);
if (style()->flexLinePack() == LinePackStretch && availableCrossAxisSpace > 0)
- lineContexts[lineNumber].crossAxisExtent += availableCrossAxisSpace / static_cast<unsigned>(lineContexts.size());
+ lineContexts[lineNumber].crossAxisExtent += availableCrossAxisSpace / lineContexts.size();
lineOffset += linePackingSpaceBetweenChildren(availableCrossAxisSpace, style()->flexLinePack(), lineContexts.size());
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes