|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
diff -up chromium-62.0.3202.62/base/bind_helpers.h.epel7-c++11 chromium-62.0.3202.62/base/bind_helpers.h
|
|
|
|
|
--- chromium-62.0.3202.62/base/bind_helpers.h.epel7-c++11 2017-10-25 08:50:15.692276363 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/base/bind_helpers.h 2017-10-25 08:50:39.977611740 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/base/bind_helpers.h 2017-10-25 09:12:15.889484145 -0400
|
|
|
|
|
@@ -282,7 +282,7 @@ class PassedWrapper {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -10,6 +10,27 @@ diff -up chromium-62.0.3202.62/base/bind_helpers.h.epel7-c++11 chromium-62.0.320
|
|
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
|
auto Unwrap(T&& o) -> decltype(Unwrapper<T>::Unwrap(std::forward<T>(o))) {
|
|
|
|
|
@@ -438,7 +438,7 @@ static inline internal::OwnedWrapper<T>
|
|
|
|
|
// Both versions of Passed() prevent T from being an lvalue reference. The first
|
|
|
|
|
// via use of enable_if, and the second takes a T* which will not bind to T&.
|
|
|
|
|
template <typename T,
|
|
|
|
|
- std::enable_if_t<!std::is_lvalue_reference<T>::value>* = nullptr>
|
|
|
|
|
+ typename std::enable_if<!std::is_lvalue_reference<T>::value>::type* = nullptr>
|
|
|
|
|
static inline internal::PassedWrapper<T> Passed(T&& scoper) {
|
|
|
|
|
return internal::PassedWrapper<T>(std::move(scoper));
|
|
|
|
|
}
|
|
|
|
|
@@ -537,9 +537,9 @@ template <typename Functor, typename...
|
|
|
|
|
struct CallbackCancellationTraits<
|
|
|
|
|
Functor,
|
|
|
|
|
std::tuple<BoundArgs...>,
|
|
|
|
|
- std::enable_if_t<
|
|
|
|
|
+ typename std::enable_if<
|
|
|
|
|
internal::IsWeakMethod<internal::FunctorTraits<Functor>::is_method,
|
|
|
|
|
- BoundArgs...>::value>> {
|
|
|
|
|
+ BoundArgs...>::value>::type> {
|
|
|
|
|
static constexpr bool is_cancellable = true;
|
|
|
|
|
|
|
|
|
|
template <typename Receiver, typename... Args>
|
|
|
|
|
diff -up chromium-62.0.3202.62/base/bind.h.epel7-c++11 chromium-62.0.3202.62/base/bind.h
|
|
|
|
|
--- chromium-62.0.3202.62/base/bind.h.epel7-c++11 2017-10-25 08:55:22.603877014 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/base/bind.h 2017-10-25 08:56:41.636714097 -0400
|
|
|
|
@ -77,7 +98,16 @@ diff -up chromium-62.0.3202.62/base/bind.h.epel7-c++11 chromium-62.0.3202.62/bas
|
|
|
|
|
// This block checks if each |args| matches to the corresponding params of the
|
|
|
|
|
diff -up chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 chromium-62.0.3202.62/base/bind_internal.h
|
|
|
|
|
--- chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 2017-10-25 08:52:20.018873878 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/base/bind_internal.h 2017-10-25 08:55:07.779282724 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/base/bind_internal.h 2017-10-25 09:14:48.526096108 -0400
|
|
|
|
|
@@ -125,7 +125,7 @@ struct FunctorTraits;
|
|
|
|
|
// to the function type while capturing lambdas can't.
|
|
|
|
|
template <typename Functor>
|
|
|
|
|
struct FunctorTraits<Functor,
|
|
|
|
|
- std::enable_if_t<IsConvertibleToRunType<Functor>::value>> {
|
|
|
|
|
+ typename std::enable_if<IsConvertibleToRunType<Functor>::value>::type> {
|
|
|
|
|
using RunType = ExtractCallableRunType<Functor>;
|
|
|
|
|
static constexpr bool is_method = false;
|
|
|
|
|
static constexpr bool is_nullable = false;
|
|
|
|
|
@@ -256,7 +256,7 @@ struct FunctorTraits<RepeatingCallback<R
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -96,6 +126,22 @@ diff -up chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 chromium-62.0.32
|
|
|
|
|
static constexpr bool is_weak_call =
|
|
|
|
|
IsWeakMethod<is_method,
|
|
|
|
|
std::tuple_element_t<indices, DecayedArgsTuple>...>();
|
|
|
|
|
@@ -383,13 +383,13 @@ struct BindTypeHelper {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <typename Functor>
|
|
|
|
|
-std::enable_if_t<FunctorTraits<Functor>::is_nullable, bool> IsNull(
|
|
|
|
|
+typename std::enable_if<FunctorTraits<Functor>::is_nullable, bool>::type IsNull(
|
|
|
|
|
const Functor& functor) {
|
|
|
|
|
return !functor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <typename Functor>
|
|
|
|
|
-std::enable_if_t<!FunctorTraits<Functor>::is_nullable, bool> IsNull(
|
|
|
|
|
+typename std::enable_if<!FunctorTraits<Functor>::is_nullable, bool>::type IsNull(
|
|
|
|
|
const Functor&) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
@@ -479,33 +479,33 @@ struct MakeBindStateTypeImpl;
|
|
|
|
|
|
|
|
|
|
template <typename Functor, typename... BoundArgs>
|
|
|
|
@ -139,7 +185,7 @@ diff -up chromium-62.0.3202.62/base/bind_internal.h.epel7-c++11 chromium-62.0.32
|
|
|
|
|
template <typename Functor, typename... BoundArgs>
|
|
|
|
|
diff -up chromium-62.0.3202.62/base/containers/span.h.epel7-c++11 chromium-62.0.3202.62/base/containers/span.h
|
|
|
|
|
--- chromium-62.0.3202.62/base/containers/span.h.epel7-c++11 2017-10-25 08:51:25.260372472 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/base/containers/span.h 2017-10-25 08:52:07.597213826 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/base/containers/span.h 2017-10-25 09:13:53.035964265 -0400
|
|
|
|
|
@@ -27,7 +27,7 @@ template <typename T>
|
|
|
|
|
struct IsSpanImpl<span<T>> : std::true_type {};
|
|
|
|
|
|
|
|
|
@ -158,3 +204,47 @@ diff -up chromium-62.0.3202.62/base/containers/span.h.epel7-c++11 chromium-62.0.
|
|
|
|
|
|
|
|
|
|
template <typename From, typename To>
|
|
|
|
|
using IsLegalSpanConversion = std::is_convertible<From*, To*>;
|
|
|
|
|
@@ -51,7 +51,7 @@ using ContainerHasIntegralSize =
|
|
|
|
|
|
|
|
|
|
template <typename From, typename To>
|
|
|
|
|
using EnableIfLegalSpanConversion =
|
|
|
|
|
- std::enable_if_t<IsLegalSpanConversion<From, To>::value>;
|
|
|
|
|
+ typename std::enable_if<IsLegalSpanConversion<From, To>::value>::type;
|
|
|
|
|
|
|
|
|
|
// SFINAE check if Container can be converted to a span<T>. Note that the
|
|
|
|
|
// implementation details of this check differ slightly from the requirements in
|
|
|
|
|
@@ -67,18 +67,18 @@ using EnableIfLegalSpanConversion =
|
|
|
|
|
// container.
|
|
|
|
|
template <typename Container, typename T>
|
|
|
|
|
using EnableIfSpanCompatibleContainer =
|
|
|
|
|
- std::enable_if_t<!internal::IsSpan<Container>::value &&
|
|
|
|
|
+ typename std::enable_if<!internal::IsSpan<Container>::value &&
|
|
|
|
|
!internal::IsStdArray<Container>::value &&
|
|
|
|
|
ContainerHasConvertibleData<Container, T>::value &&
|
|
|
|
|
- ContainerHasIntegralSize<Container>::value>;
|
|
|
|
|
+ ContainerHasIntegralSize<Container>::value>::type;
|
|
|
|
|
|
|
|
|
|
template <typename Container, typename T>
|
|
|
|
|
using EnableIfConstSpanCompatibleContainer =
|
|
|
|
|
- std::enable_if_t<std::is_const<T>::value &&
|
|
|
|
|
+ typename std::enable_if<std::is_const<T>::value &&
|
|
|
|
|
!internal::IsSpan<Container>::value &&
|
|
|
|
|
!internal::IsStdArray<Container>::value &&
|
|
|
|
|
ContainerHasConvertibleData<Container, T>::value &&
|
|
|
|
|
- ContainerHasIntegralSize<Container>::value>;
|
|
|
|
|
+ ContainerHasIntegralSize<Container>::value>::type;
|
|
|
|
|
|
|
|
|
|
} // namespace internal
|
|
|
|
|
|
|
|
|
|
diff -up chromium-62.0.3202.62/ipc/ipc_message_templates.h.epel7-c++11 chromium-62.0.3202.62/ipc/ipc_message_templates.h
|
|
|
|
|
--- chromium-62.0.3202.62/ipc/ipc_message_templates.h.epel7-c++11 2017-10-25 09:15:02.382879317 -0400
|
|
|
|
|
+++ chromium-62.0.3202.62/ipc/ipc_message_templates.h 2017-10-25 09:15:36.609343836 -0400
|
|
|
|
|
@@ -67,7 +67,7 @@ void DispatchToMethodImpl(ObjT* obj,
|
|
|
|
|
// The following function is for async IPCs which have a dispatcher with an
|
|
|
|
|
// extra parameter specified using IPC_BEGIN_MESSAGE_MAP_WITH_PARAM.
|
|
|
|
|
template <typename ObjT, typename P, typename... Args, typename Tuple>
|
|
|
|
|
-std::enable_if_t<sizeof...(Args) == std::tuple_size<std::decay_t<Tuple>>::value>
|
|
|
|
|
+typename std::enable_if<sizeof...(Args) == std::tuple_size<std::decay_t<Tuple>>::value>::type
|
|
|
|
|
DispatchToMethod(ObjT* obj,
|
|
|
|
|
void (ObjT::*method)(P*, Args...),
|
|
|
|
|
P* parameter,
|