Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6780)

Unified Diff: base/numerics/safe_conversions.h

Issue 141583008: Add support for safe math operations in base/numerics (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fix x64 _mm_empty Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/numerics/safe_conversions.h
diff --git a/base/numerics/safe_conversions.h b/base/numerics/safe_conversions.h
index 03ef96d315e5a77757e8e0eec373394fd289199d..fe85fc6f52d3e23e715406de8fa3e631e7d32d57 100644
--- a/base/numerics/safe_conversions.h
+++ b/base/numerics/safe_conversions.h
@@ -16,7 +16,8 @@ namespace base {
// for the destination type.
template <typename Dst, typename Src>
inline bool IsValueInRangeForNumericType(Src value) {
- return internal::RangeCheck<Dst>(value) == internal::TYPE_VALID;
+ return internal::DstRangeRelationToSrcRange<Dst>(value) ==
+ internal::RANGE_VALID;
}
// checked_cast<> is analogous to static_cast<> for numeric types,
@@ -37,18 +38,18 @@ inline Dst saturated_cast(Src value) {
if (std::numeric_limits<Dst>::is_iec559)
return static_cast<Dst>(value);
- switch (internal::RangeCheck<Dst>(value)) {
- case internal::TYPE_VALID:
+ switch (internal::DstRangeRelationToSrcRange<Dst>(value)) {
+ case internal::RANGE_VALID:
return static_cast<Dst>(value);
- case internal::TYPE_UNDERFLOW:
+ case internal::RANGE_UNDERFLOW:
return std::numeric_limits<Dst>::min();
- case internal::TYPE_OVERFLOW:
+ case internal::RANGE_OVERFLOW:
return std::numeric_limits<Dst>::max();
// Should fail only on attempting to assign NaN to a saturated integer.
- case internal::TYPE_INVALID:
+ case internal::RANGE_INVALID:
CHECK(false);
return std::numeric_limits<Dst>::max();
}
« no previous file with comments | « base/base.gypi ('k') | base/numerics/safe_conversions_impl.h » ('j') | base/numerics/safe_math.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698