From 6c673585ed6bcb9e330ea5ab716f496c5d5f37b4 Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Mon, 23 Jun 2014 15:24:28 -0700 Subject: Revert "Import Chromium base/numerics to resolve integer overflow." This reverts commit d9713f05fdcecab8428d39034c6b84cd0bbd2920. This is breaking compile. --- third_party/numerics/safe_conversions.h | 64 --------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 third_party/numerics/safe_conversions.h (limited to 'third_party/numerics/safe_conversions.h') diff --git a/third_party/numerics/safe_conversions.h b/third_party/numerics/safe_conversions.h deleted file mode 100644 index 681dc0a9cc..0000000000 --- a/third_party/numerics/safe_conversions.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_SAFE_CONVERSIONS_H_ -#define BASE_SAFE_CONVERSIONS_H_ - -#include - -#include "../logging.h" -#include "safe_conversions_impl.h" - -namespace base { - -// Convenience function that returns true if the supplied value is in range -// for the destination type. -template -inline bool IsValueInRangeForNumericType(Src value) { - return internal::DstRangeRelationToSrcRange(value) == - internal::RANGE_VALID; -} - -// checked_cast<> is analogous to static_cast<> for numeric types, -// except that it CHECKs that the specified numeric conversion will not -// overflow or underflow. NaN source will always trigger a CHECK. -template -inline Dst checked_cast(Src value) { - CHECK(IsValueInRangeForNumericType(value)); - return static_cast(value); -} - -// saturated_cast<> is analogous to static_cast<> for numeric types, except -// that the specified numeric conversion will saturate rather than overflow or -// underflow. NaN assignment to an integral will trigger a CHECK condition. -template -inline Dst saturated_cast(Src value) { - // Optimization for floating point values, which already saturate. - if (std::numeric_limits::is_iec559) - return static_cast(value); - - switch (internal::DstRangeRelationToSrcRange(value)) { - case internal::RANGE_VALID: - return static_cast(value); - - case internal::RANGE_UNDERFLOW: - return std::numeric_limits::min(); - - case internal::RANGE_OVERFLOW: - return std::numeric_limits::max(); - - // Should fail only on attempting to assign NaN to a saturated integer. - case internal::RANGE_INVALID: - CHECK(false); - return std::numeric_limits::max(); - } - - NOTREACHED(); - return static_cast(value); -} - -} // namespace base - -#endif // BASE_SAFE_CONVERSIONS_H_ - -- cgit v1.2.3