Index: mojo/public/cpp/bindings/lib/bindings_internal.h |
diff --git a/mojo/public/cpp/bindings/lib/bindings_internal.h b/mojo/public/cpp/bindings/lib/bindings_internal.h |
index d202868d3517265ba84bb594c8f6514fcb0d3ad7..17fc0121acd8801bce81ccc37b9d70755d2f8740 100644 |
--- a/mojo/public/cpp/bindings/lib/bindings_internal.h |
+++ b/mojo/public/cpp/bindings/lib/bindings_internal.h |
@@ -198,6 +198,7 @@ template <typename T, |
IsUnionWrapperType<typename RemoveStructPtr<T>::type>::value> |
struct WrapperTraits; |
+// Catch-all for all mojom types not specialized below. |
template <typename T> |
struct WrapperTraits<T, false, false> { |
using DataType = T; |
@@ -214,6 +215,7 @@ template <typename Interface> |
struct WrapperTraits<InterfacePtr<Interface>, true, false> { |
using DataType = Interface_Data; |
}; |
+// Unions. |
template <typename U> |
struct WrapperTraits<StructPtr<U>, true, true> { |
using DataType = typename U::Data_; |
@@ -222,6 +224,7 @@ template <typename U> |
struct WrapperTraits<InlinedStructPtr<U>, true, true> { |
using DataType = typename U::Data_; |
}; |
+// Catch-all for other pointer types: arrays, maps. |
template <typename S> |
struct WrapperTraits<S, true, false> { |
using DataType = typename S::Data_*; |