From aa8bf7e42b8c73a9bc07ed6781364ba05f5a9776 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Thu, 24 Dec 2015 19:13:32 -0800 Subject: Merge to XFA: Switch from nonstd::unique_ptr to std::unique_ptr. TBR=thakis@chromium.org Review URL: https://codereview.chromium.org/1547833002 . (cherry picked from commit d20dfba2ae10e8aeb328328f09da79ff904110a8) Review URL: https://codereview.chromium.org/1545183002 . --- third_party/base/numerics/safe_conversions_impl.h | 1 - third_party/base/numerics/safe_math.h | 6 +- third_party/base/numerics/safe_math_impl.h | 111 +++++++++++----------- 3 files changed, 60 insertions(+), 58 deletions(-) (limited to 'third_party/base/numerics') diff --git a/third_party/base/numerics/safe_conversions_impl.h b/third_party/base/numerics/safe_conversions_impl.h index c974ee0590..e1c4c3b756 100644 --- a/third_party/base/numerics/safe_conversions_impl.h +++ b/third_party/base/numerics/safe_conversions_impl.h @@ -9,7 +9,6 @@ #include #include "third_party/base/macros.h" -#include "third_party/base/template_util.h" namespace pdfium { namespace base { diff --git a/third_party/base/numerics/safe_math.h b/third_party/base/numerics/safe_math.h index 9540e83321..013af1eb60 100644 --- a/third_party/base/numerics/safe_math.h +++ b/third_party/base/numerics/safe_math.h @@ -166,15 +166,15 @@ class CheckedNumeric { template static CheckedNumeric cast( Src u, - typename enable_if::is_specialized, int>::type = - 0) { + typename std::enable_if::is_specialized, + int>::type = 0) { return u; } template static CheckedNumeric cast( const CheckedNumeric& u, - typename enable_if::value, int>::type = 0) { + typename std::enable_if::value, int>::type = 0) { return u; } diff --git a/third_party/base/numerics/safe_math_impl.h b/third_party/base/numerics/safe_math_impl.h index 4209446694..f219cf52bb 100644 --- a/third_party/base/numerics/safe_math_impl.h +++ b/third_party/base/numerics/safe_math_impl.h @@ -10,10 +10,10 @@ #include #include #include +#include #include "safe_conversions.h" #include "third_party/base/macros.h" -#include "third_party/base/template_util.h" namespace pdfium { namespace base { @@ -65,21 +65,21 @@ struct IntegerForSizeAndSign<8, false> { template struct UnsignedIntegerForSize { - typedef typename enable_if< + typedef typename std::enable_if< std::numeric_limits::is_integer, typename IntegerForSizeAndSign::type>::type type; }; template struct SignedIntegerForSize { - typedef typename enable_if< + typedef typename std::enable_if< std::numeric_limits::is_integer, typename IntegerForSizeAndSign::type>::type type; }; template struct TwiceWiderInteger { - typedef typename enable_if< + typedef typename std::enable_if< std::numeric_limits::is_integer, typename IntegerForSizeAndSign< sizeof(Integer) * 2, @@ -88,8 +88,9 @@ struct TwiceWiderInteger { template struct PositionOfSignBit { - static const typename enable_if::is_integer, - size_t>::type value = 8 * sizeof(Integer) - 1; + static const typename std::enable_if::is_integer, + size_t>::type value = + 8 * sizeof(Integer) - 1; }; // Helper templates for integer manipulations. @@ -112,7 +113,7 @@ T BinaryComplement(T x) { // way to coalesce things into the CheckedNumericState specializations below. template -typename enable_if::is_integer, T>::type +typename std::enable_if::is_integer, T>::type CheckedAdd(T x, T y, RangeConstraint* validity) { // Since the value of x+y is undefined if we have a signed type, we compute // it using the unsigned type of the same size. @@ -135,7 +136,7 @@ CheckedAdd(T x, T y, RangeConstraint* validity) { } template -typename enable_if::is_integer, T>::type +typename std::enable_if::is_integer, T>::type CheckedSub(T x, T y, RangeConstraint* validity) { // Since the value of x+y is undefined if we have a signed type, we compute // it using the unsigned type of the same size. @@ -162,9 +163,9 @@ CheckedSub(T x, T y, RangeConstraint* validity) { // slow case we need to manually check that the result won't be truncated by // checking with division against the appropriate bound. template -typename enable_if< - std::numeric_limits::is_integer && sizeof(T) * 2 <= sizeof(uintmax_t), - T>::type +typename std::enable_if::is_integer && + sizeof(T) * 2 <= sizeof(uintmax_t), + T>::type CheckedMul(T x, T y, RangeConstraint* validity) { typedef typename TwiceWiderInteger::type IntermediateType; IntermediateType tmp = @@ -174,9 +175,10 @@ CheckedMul(T x, T y, RangeConstraint* validity) { } template -typename enable_if::is_integer&& std::numeric_limits< - T>::is_signed&&(sizeof(T) * 2 > sizeof(uintmax_t)), - T>::type +typename std::enable_if::is_integer && + std::numeric_limits::is_signed && + (sizeof(T) * 2 > sizeof(uintmax_t)), + T>::type CheckedMul(T x, T y, RangeConstraint* validity) { // If either side is zero then the result will be zero. if (!x || !y) { @@ -203,10 +205,10 @@ CheckedMul(T x, T y, RangeConstraint* validity) { } template -typename enable_if::is_integer && - !std::numeric_limits::is_signed && - (sizeof(T) * 2 > sizeof(uintmax_t)), - T>::type +typename std::enable_if::is_integer && + !std::numeric_limits::is_signed && + (sizeof(T) * 2 > sizeof(uintmax_t)), + T>::type CheckedMul(T x, T y, RangeConstraint* validity) { *validity = (y == 0 || x <= std::numeric_limits::max() / y) ? RANGE_VALID @@ -216,11 +218,11 @@ CheckedMul(T x, T y, RangeConstraint* validity) { // Division just requires a check for an invalid negation on signed min/-1. template -T CheckedDiv( - T x, - T y, - RangeConstraint* validity, - typename enable_if::is_integer, int>::type = 0) { +T CheckedDiv(T x, + T y, + RangeConstraint* validity, + typename std::enable_if::is_integer, + int>::type = 0) { if (std::numeric_limits::is_signed && x == std::numeric_limits::min() && y == static_cast(-1)) { *validity = RANGE_OVERFLOW; @@ -232,27 +234,27 @@ T CheckedDiv( } template -typename enable_if< - std::numeric_limits::is_integer&& std::numeric_limits::is_signed, - T>::type +typename std::enable_if::is_integer && + std::numeric_limits::is_signed, + T>::type CheckedMod(T x, T y, RangeConstraint* validity) { *validity = y > 0 ? RANGE_VALID : RANGE_INVALID; return x % y; } template -typename enable_if< - std::numeric_limits::is_integer && !std::numeric_limits::is_signed, - T>::type +typename std::enable_if::is_integer && + !std::numeric_limits::is_signed, + T>::type CheckedMod(T x, T y, RangeConstraint* validity) { *validity = RANGE_VALID; return x % y; } template -typename enable_if< - std::numeric_limits::is_integer&& std::numeric_limits::is_signed, - T>::type +typename std::enable_if::is_integer && + std::numeric_limits::is_signed, + T>::type CheckedNeg(T value, RangeConstraint* validity) { *validity = value != std::numeric_limits::min() ? RANGE_VALID : RANGE_OVERFLOW; @@ -261,9 +263,9 @@ CheckedNeg(T value, RangeConstraint* validity) { } template -typename enable_if< - std::numeric_limits::is_integer && !std::numeric_limits::is_signed, - T>::type +typename std::enable_if::is_integer && + !std::numeric_limits::is_signed, + T>::type CheckedNeg(T value, RangeConstraint* validity) { // The only legal unsigned negation is zero. *validity = value ? RANGE_UNDERFLOW : RANGE_VALID; @@ -272,9 +274,9 @@ CheckedNeg(T value, RangeConstraint* validity) { } template -typename enable_if< - std::numeric_limits::is_integer&& std::numeric_limits::is_signed, - T>::type +typename std::enable_if::is_integer && + std::numeric_limits::is_signed, + T>::type CheckedAbs(T value, RangeConstraint* validity) { *validity = value != std::numeric_limits::min() ? RANGE_VALID : RANGE_OVERFLOW; @@ -282,9 +284,9 @@ CheckedAbs(T value, RangeConstraint* validity) { } template -typename enable_if< - std::numeric_limits::is_integer && !std::numeric_limits::is_signed, - T>::type +typename std::enable_if::is_integer && + !std::numeric_limits::is_signed, + T>::type CheckedAbs(T value, RangeConstraint* validity) { // Absolute value of a positive is just its identiy. *validity = RANGE_VALID; @@ -293,12 +295,12 @@ CheckedAbs(T value, RangeConstraint* validity) { // These are the floating point stubs that the compiler needs to see. Only the // negation operation is ever called. -#define BASE_FLOAT_ARITHMETIC_STUBS(NAME) \ - template \ - typename enable_if::is_iec559, T>::type \ - Checked##NAME(T, T, RangeConstraint*) { \ - NOTREACHED(); \ - return 0; \ +#define BASE_FLOAT_ARITHMETIC_STUBS(NAME) \ + template \ + typename std::enable_if::is_iec559, T>::type \ + Checked##NAME(T, T, RangeConstraint*) { \ + NOTREACHED(); \ + return 0; \ } BASE_FLOAT_ARITHMETIC_STUBS(Add) @@ -310,14 +312,14 @@ BASE_FLOAT_ARITHMETIC_STUBS(Mod) #undef BASE_FLOAT_ARITHMETIC_STUBS template -typename enable_if::is_iec559, T>::type CheckedNeg( +typename std::enable_if::is_iec559, T>::type CheckedNeg( T value, RangeConstraint*) { return -value; } template -typename enable_if::is_iec559, T>::type CheckedAbs( +typename std::enable_if::is_iec559, T>::type CheckedAbs( T value, RangeConstraint*) { return std::abs(value); @@ -377,8 +379,8 @@ class CheckedNumericState { template explicit CheckedNumericState( Src value, - typename enable_if::is_specialized, int>::type = - 0) + typename std::enable_if::is_specialized, + int>::type = 0) : value_(static_cast(value)), validity_(DstRangeRelationToSrcRange(value)) {} @@ -402,7 +404,8 @@ class CheckedNumericState { CheckedNumericState( Src value, RangeConstraint validity, - typename enable_if::is_integer, int>::type = 0) { + typename std::enable_if::is_integer, int>::type = + 0) { switch (DstRangeRelationToSrcRange(value)) { case RANGE_VALID: value_ = static_cast(value); @@ -428,8 +431,8 @@ class CheckedNumericState { template explicit CheckedNumericState( Src value, - typename enable_if::is_specialized, int>::type = - 0) + typename std::enable_if::is_specialized, + int>::type = 0) : value_(static_cast(value)) {} // Copy constructor. -- cgit v1.2.3