Changeset 114404 in webkit
- Timestamp:
- Apr 17, 2012 11:51:50 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r114401 r114404 1 2012-04-17 Emil A Eklund <eae@chromium.org> 2 3 Add size_t versions of multiplication and division operators to FractionalLayoutUnit 4 https://bugs.webkit.org/show_bug.cgi?id=83848 5 6 Reviewed by Julien Chaffraix. 7 8 Add size_t versions of operator* and operator/ for platforms where there 9 is no ambiguity between unsigned int and size_t. 10 11 No new tests, no new functionality. 12 13 * platform/FractionalLayoutUnit.h: 14 (FractionalLayoutUnit): 15 (WebCore::FractionalLayoutUnit::FractionalLayoutUnit): 16 (WebCore::FractionalLayoutUnit::isInBounds): 17 (WebCore): 18 (WebCore::operator*): 19 (WebCore::operator/): 20 1 21 2012-04-17 Kentaro Hara <haraken@chromium.org> 2 22 -
trunk/Source/WebCore/platform/FractionalLayoutUnit.h
r113803 r114404 37 37 #include <stdlib.h> 38 38 39 #if PLATFORM(CHROMIUM) || PLATFORM(MAC) 40 #define ARE_SIZE_T_UNSIGNED_DIFFERENT_UNIT 41 #endif 42 39 43 namespace WebCore { 40 44 … … 52 56 FractionalLayoutUnit(double value) { ASSERT(isInBounds(value)); m_value = value * kFixedPointDenominator; } 53 57 FractionalLayoutUnit(const FractionalLayoutUnit& value) { m_value = value.rawValue(); } 58 #ifdef ARE_SIZE_T_UNSIGNED_DIFFERENT_UNIT 59 FractionalLayoutUnit(size_t value) { ASSERT(isInBounds(value)); m_value = static_cast<int>(value * kFixedPointDenominator); } 60 #endif 54 61 55 62 inline int toInt() const { return m_value / kFixedPointDenominator; } … … 127 134 return ::fabs(value) <= std::numeric_limits<int>::max() / kFixedPointDenominator; 128 135 } 136 #ifdef ARE_SIZE_T_UNSIGNED_DIFFERENT_UNIT 137 inline bool isInBounds(size_t value) 138 { 139 return value <= static_cast<size_t>(std::numeric_limits<int>::max()) / kFixedPointDenominator; 140 } 141 #endif 129 142 130 143 int m_value; … … 332 345 } 333 346 347 #ifdef ARE_SIZE_T_UNSIGNED_DIFFERENT_UNIT 348 inline FractionalLayoutUnit operator*(const FractionalLayoutUnit& a, size_t b) 349 { 350 return a * FractionalLayoutUnit(b); 351 } 352 #endif 353 334 354 inline FractionalLayoutUnit operator*(unsigned a, const FractionalLayoutUnit& b) 335 355 { … … 351 371 return a * b.toDouble(); 352 372 } 373 374 #ifdef ARE_SIZE_T_UNSIGNED_DIFFERENT_UNIT 375 inline FractionalLayoutUnit operator*(size_t a, const FractionalLayoutUnit& b) 376 { 377 return FractionalLayoutUnit(a) * b; 378 } 379 #endif 353 380 354 381 inline FractionalLayoutUnit operator/(const FractionalLayoutUnit& a, const FractionalLayoutUnit& b) … … 380 407 } 381 408 409 #ifdef ARE_SIZE_T_UNSIGNED_DIFFERENT_UNIT 410 inline FractionalLayoutUnit operator/(const FractionalLayoutUnit& a, size_t b) 411 { 412 return a / FractionalLayoutUnit(b); 413 } 414 #endif 415 382 416 inline float operator/(const float a, const FractionalLayoutUnit& b) 383 417 { … … 394 428 return FractionalLayoutUnit(a) / b; 395 429 } 430 431 #ifdef ARE_SIZE_T_UNSIGNED_DIFFERENT_UNIT 432 inline FractionalLayoutUnit operator/(size_t a, const FractionalLayoutUnit& b) 433 { 434 return FractionalLayoutUnit(a) / b; 435 } 436 #endif 396 437 397 438 inline FractionalLayoutUnit operator+(const FractionalLayoutUnit& a, const FractionalLayoutUnit& b)
Note: See TracChangeset
for help on using the changeset viewer.