| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012, Google Inc. All rights reserved. | 2 * Copyright (c) 2012, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 } | 213 } |
| 214 static bool isInBounds(unsigned value) | 214 static bool isInBounds(unsigned value) |
| 215 { | 215 { |
| 216 return value <= static_cast<unsigned>(std::numeric_limits<int>::max()) /
kFixedPointDenominator; | 216 return value <= static_cast<unsigned>(std::numeric_limits<int>::max()) /
kFixedPointDenominator; |
| 217 } | 217 } |
| 218 static bool isInBounds(double value) | 218 static bool isInBounds(double value) |
| 219 { | 219 { |
| 220 return ::fabs(value) <= std::numeric_limits<int>::max() / kFixedPointDen
ominator; | 220 return ::fabs(value) <= std::numeric_limits<int>::max() / kFixedPointDen
ominator; |
| 221 } | 221 } |
| 222 | 222 |
| 223 inline void setValue(int value) | 223 ALWAYS_INLINE void setValue(int value) |
| 224 { | 224 { |
| 225 if (value > intMaxForLayoutUnit) | 225 m_value = saturatedSet(value, kLayoutUnitFractionalBits); |
| 226 m_value = std::numeric_limits<int>::max(); | |
| 227 else if (value < intMinForLayoutUnit) | |
| 228 m_value = std::numeric_limits<int>::min(); | |
| 229 else | |
| 230 m_value = value * kFixedPointDenominator; | |
| 231 } | 226 } |
| 227 |
| 232 inline void setValue(unsigned value) | 228 inline void setValue(unsigned value) |
| 233 { | 229 { |
| 234 if (value >= static_cast<unsigned>(intMaxForLayoutUnit)) | 230 m_value = saturatedSet(value, kLayoutUnitFractionalBits); |
| 235 m_value = std::numeric_limits<int>::max(); | |
| 236 else | |
| 237 m_value = value * kFixedPointDenominator; | |
| 238 } | 231 } |
| 239 | 232 |
| 240 int m_value; | 233 int m_value; |
| 241 }; | 234 }; |
| 242 | 235 |
| 243 inline bool operator<=(const LayoutUnit& a, const LayoutUnit& b) | 236 inline bool operator<=(const LayoutUnit& a, const LayoutUnit& b) |
| 244 { | 237 { |
| 245 return a.rawValue() <= b.rawValue(); | 238 return a.rawValue() <= b.rawValue(); |
| 246 } | 239 } |
| 247 | 240 |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 795 if (value >= max) | 788 if (value >= max) |
| 796 return max; | 789 return max; |
| 797 if (value <= min) | 790 if (value <= min) |
| 798 return min; | 791 return min; |
| 799 return value; | 792 return value; |
| 800 } | 793 } |
| 801 | 794 |
| 802 } // namespace WebCore | 795 } // namespace WebCore |
| 803 | 796 |
| 804 #endif // LayoutUnit_h | 797 #endif // LayoutUnit_h |
| OLD | NEW |