Commit cd8a64bd authored by Julien Racle's avatar Julien Racle Committed by Commit Bot

[base/win] fix alias collisions

If you include both base/win/async_operation.h and base/win/vector.h
then a few aliases (like Complex, Abi) will collide.

This CL proposes using dedicated type names to prevent collision to
happen.

BUG=728870

Change-Id: Ib7757ecd0793a25de18818f1156920973e8ef8c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1755748
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: default avatarRobert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#687289}
parent 4ef8d205
...@@ -74,17 +74,18 @@ namespace internal { ...@@ -74,17 +74,18 @@ namespace internal {
// See base/win/winrt_foundation_helpers.h for explanation. // See base/win/winrt_foundation_helpers.h for explanation.
template <typename T> template <typename T>
using Complex = using AsyncOperationComplex =
typename ABI::Windows::Foundation::IAsyncOperation<T>::TResult_complex; typename ABI::Windows::Foundation::IAsyncOperation<T>::TResult_complex;
template <typename T> template <typename T>
using Abi = AbiType<Complex<T>>; using AsyncOperationAbi = AbiType<AsyncOperationComplex<T>>;
template <typename T> template <typename T>
using OptionalStorageT = OptionalStorageType<Complex<T>>; using AsyncOperationOptionalStorage =
OptionalStorageType<AsyncOperationComplex<T>>;
template <typename T> template <typename T>
using StorageT = StorageType<Complex<T>>; using AsyncOperationStorage = StorageType<AsyncOperationComplex<T>>;
} // namespace internal } // namespace internal
...@@ -95,9 +96,9 @@ class AsyncOperation ...@@ -95,9 +96,9 @@ class AsyncOperation
Microsoft::WRL::WinRt | Microsoft::WRL::InhibitRoOriginateError>, Microsoft::WRL::WinRt | Microsoft::WRL::InhibitRoOriginateError>,
ABI::Windows::Foundation::IAsyncOperation<T>> { ABI::Windows::Foundation::IAsyncOperation<T>> {
public: public:
using AbiT = internal::Abi<T>; using AbiT = internal::AsyncOperationAbi<T>;
using OptionalStorageT = internal::OptionalStorageT<T>; using OptionalStorageT = internal::AsyncOperationOptionalStorage<T>;
using StorageT = internal::StorageT<T>; using StorageT = internal::AsyncOperationStorage<T>;
using Handler = ABI::Windows::Foundation::IAsyncOperationCompletedHandler<T>; using Handler = ABI::Windows::Foundation::IAsyncOperationCompletedHandler<T>;
using ResultCallback = base::OnceCallback<void(StorageT)>; using ResultCallback = base::OnceCallback<void(StorageT)>;
......
...@@ -31,17 +31,17 @@ namespace internal { ...@@ -31,17 +31,17 @@ namespace internal {
// See base/win/winrt_foundation_helpers.h for explanation. // See base/win/winrt_foundation_helpers.h for explanation.
template <typename T> template <typename T>
using Complex = using VectorComplex =
typename ABI::Windows::Foundation::Collections::IVector<T>::T_complex; typename ABI::Windows::Foundation::Collections::IVector<T>::T_complex;
template <typename T> template <typename T>
using Logical = LogicalType<Complex<T>>; using VectorLogical = LogicalType<VectorComplex<T>>;
template <typename T> template <typename T>
using Abi = AbiType<Complex<T>>; using VectorAbi = AbiType<VectorComplex<T>>;
template <typename T> template <typename T>
using Storage = StorageType<Complex<T>>; using VectorStorage = StorageType<VectorComplex<T>>;
template <typename T> template <typename T>
class VectorIterator class VectorIterator
...@@ -49,10 +49,10 @@ class VectorIterator ...@@ -49,10 +49,10 @@ class VectorIterator
Microsoft::WRL::RuntimeClassFlags< Microsoft::WRL::RuntimeClassFlags<
Microsoft::WRL::WinRtClassicComMix | Microsoft::WRL::WinRtClassicComMix |
Microsoft::WRL::InhibitRoOriginateError>, Microsoft::WRL::InhibitRoOriginateError>,
ABI::Windows::Foundation::Collections::IIterator<Logical<T>>> { ABI::Windows::Foundation::Collections::IIterator<VectorLogical<T>>> {
public: public:
using LogicalT = Logical<T>; using LogicalT = VectorLogical<T>;
using AbiT = Abi<T>; using AbiT = VectorAbi<T>;
explicit VectorIterator( explicit VectorIterator(
Microsoft::WRL::ComPtr< Microsoft::WRL::ComPtr<
...@@ -126,12 +126,12 @@ class VectorView ...@@ -126,12 +126,12 @@ class VectorView
Microsoft::WRL::RuntimeClassFlags< Microsoft::WRL::RuntimeClassFlags<
Microsoft::WRL::WinRtClassicComMix | Microsoft::WRL::WinRtClassicComMix |
Microsoft::WRL::InhibitRoOriginateError>, Microsoft::WRL::InhibitRoOriginateError>,
ABI::Windows::Foundation::Collections::IVectorView<Logical<T>>, ABI::Windows::Foundation::Collections::IVectorView<VectorLogical<T>>,
ABI::Windows::Foundation::Collections::VectorChangedEventHandler< ABI::Windows::Foundation::Collections::VectorChangedEventHandler<
Logical<T>>> { VectorLogical<T>>> {
public: public:
using LogicalT = Logical<T>; using LogicalT = VectorLogical<T>;
using AbiT = Abi<T>; using AbiT = VectorAbi<T>;
explicit VectorView(Microsoft::WRL::ComPtr<Vector<LogicalT>> vector) explicit VectorView(Microsoft::WRL::ComPtr<Vector<LogicalT>> vector)
: vector_(std::move(vector)) { : vector_(std::move(vector)) {
...@@ -198,15 +198,16 @@ class Vector ...@@ -198,15 +198,16 @@ class Vector
: public Microsoft::WRL::RuntimeClass< : public Microsoft::WRL::RuntimeClass<
Microsoft::WRL::RuntimeClassFlags< Microsoft::WRL::RuntimeClassFlags<
Microsoft::WRL::WinRt | Microsoft::WRL::InhibitRoOriginateError>, Microsoft::WRL::WinRt | Microsoft::WRL::InhibitRoOriginateError>,
ABI::Windows::Foundation::Collections::IVector<internal::Logical<T>>, ABI::Windows::Foundation::Collections::IVector<
internal::VectorLogical<T>>,
ABI::Windows::Foundation::Collections::IObservableVector< ABI::Windows::Foundation::Collections::IObservableVector<
internal::Logical<T>>, internal::VectorLogical<T>>,
ABI::Windows::Foundation::Collections::IIterable< ABI::Windows::Foundation::Collections::IIterable<
internal::Logical<T>>> { internal::VectorLogical<T>>> {
public: public:
using LogicalT = internal::Logical<T>; using LogicalT = internal::VectorLogical<T>;
using AbiT = internal::Abi<T>; using AbiT = internal::VectorAbi<T>;
using StorageT = internal::Storage<T>; using StorageT = internal::VectorStorage<T>;
Vector() = default; Vector() = default;
explicit Vector(const std::vector<StorageT>& vector) : vector_(vector) {} explicit Vector(const std::vector<StorageT>& vector) : vector_(vector) {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment