Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Unified Diff: third_party/WebKit/Source/wtf/VectorTraits.h

Issue 1611343002: wtf reformat test Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pydent Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/wtf/VectorTest.cpp ('k') | third_party/WebKit/Source/wtf/WTF.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/wtf/VectorTraits.h
diff --git a/third_party/WebKit/Source/wtf/VectorTraits.h b/third_party/WebKit/Source/wtf/VectorTraits.h
index 8d10684913d554b5176bb38a13848e746d0d81b1..490fccbdc414edc6eb8089e2e2c81e826faa56ad 100644
--- a/third_party/WebKit/Source/wtf/VectorTraits.h
+++ b/third_party/WebKit/Source/wtf/VectorTraits.h
@@ -33,25 +33,30 @@ class AtomicString;
template <typename T>
struct VectorTraitsBase {
- static const bool needsDestruction = !IsTriviallyDestructible<T>::value;
-
- static const bool canInitializeWithMemset = IsTriviallyDefaultConstructible<T>::value;
- // true iff memset(slot, 0, size) constructs an unused slot value that is
- // valid for Oilpan to trace and if the value needs destruction, its
- // destructor can be invoked over. The zero'ed value representing an unused
- // slot in the vector's backing storage; it does not have to be equal to
- // what its constructor(s) would create, only be valid for those two uses.
- static const bool canClearUnusedSlotsWithMemset = IsTriviallyDefaultConstructible<T>::value;
-
- static const bool canMoveWithMemcpy = IsTriviallyMoveAssignable<T>::value;
- static const bool canCopyWithMemcpy = IsTriviallyCopyAssignable<T>::value;
- static const bool canFillWithMemset = IsTriviallyDefaultConstructible<T>::value && (sizeof(T) == sizeof(char));
- static const bool canCompareWithMemcmp = std::is_scalar<T>::value; // Types without padding.
- template <typename U = void>
- struct NeedsTracingLazily {
- static const bool value = NeedsTracing<T>::value;
- };
- static const WeakHandlingFlag weakHandlingFlag = NoWeakHandlingInCollections; // We don't support weak handling in vectors.
+ static const bool needsDestruction = !IsTriviallyDestructible<T>::value;
+
+ static const bool canInitializeWithMemset =
+ IsTriviallyDefaultConstructible<T>::value;
+ // true iff memset(slot, 0, size) constructs an unused slot value that is
+ // valid for Oilpan to trace and if the value needs destruction, its
+ // destructor can be invoked over. The zero'ed value representing an unused
+ // slot in the vector's backing storage; it does not have to be equal to
+ // what its constructor(s) would create, only be valid for those two uses.
+ static const bool canClearUnusedSlotsWithMemset =
+ IsTriviallyDefaultConstructible<T>::value;
+
+ static const bool canMoveWithMemcpy = IsTriviallyMoveAssignable<T>::value;
+ static const bool canCopyWithMemcpy = IsTriviallyCopyAssignable<T>::value;
+ static const bool canFillWithMemset =
+ IsTriviallyDefaultConstructible<T>::value && (sizeof(T) == sizeof(char));
+ static const bool canCompareWithMemcmp =
+ std::is_scalar<T>::value; // Types without padding.
+ template <typename U = void>
+ struct NeedsTracingLazily {
+ static const bool value = NeedsTracing<T>::value;
+ };
+ static const WeakHandlingFlag weakHandlingFlag =
+ NoWeakHandlingInCollections; // We don't support weak handling in vectors.
};
template <typename T>
@@ -62,10 +67,10 @@ struct VectorTraits : VectorTraitsBase<T> {};
// comparison.
template <typename T>
struct SimpleClassVectorTraits : VectorTraitsBase<T> {
- static const bool canInitializeWithMemset = true;
- static const bool canClearUnusedSlotsWithMemset = true;
- static const bool canMoveWithMemcpy = true;
- static const bool canCompareWithMemcmp = true;
+ static const bool canInitializeWithMemset = true;
+ static const bool canClearUnusedSlotsWithMemset = true;
+ static const bool canMoveWithMemcpy = true;
+ static const bool canCompareWithMemcmp = true;
};
// We know OwnPtr and RefPtr are simple enough that initializing to 0 and moving
@@ -75,79 +80,99 @@ struct VectorTraits<RefPtr<P>> : SimpleClassVectorTraits<RefPtr<P>> {};
template <typename P>
struct VectorTraits<OwnPtr<P>> : SimpleClassVectorTraits<OwnPtr<P>> {
- // OwnPtr -> PassOwnPtr has a very particular structure that tricks the
- // normal type traits into thinking that the class is "trivially copyable".
- static const bool canCopyWithMemcpy = false;
+ // OwnPtr -> PassOwnPtr has a very particular structure that tricks the
+ // normal type traits into thinking that the class is "trivially copyable".
+ static const bool canCopyWithMemcpy = false;
};
-static_assert(VectorTraits<RefPtr<int>>::canInitializeWithMemset, "inefficient RefPtr Vector");
-static_assert(VectorTraits<RefPtr<int>>::canMoveWithMemcpy, "inefficient RefPtr Vector");
-static_assert(VectorTraits<RefPtr<int>>::canCompareWithMemcmp, "inefficient RefPtr Vector");
-static_assert(VectorTraits<OwnPtr<int>>::canInitializeWithMemset, "inefficient OwnPtr Vector");
-static_assert(VectorTraits<OwnPtr<int>>::canMoveWithMemcpy, "inefficient OwnPtr Vector");
-static_assert(VectorTraits<OwnPtr<int>>::canCompareWithMemcmp, "inefficient OwnPtr Vector");
+static_assert(VectorTraits<RefPtr<int>>::canInitializeWithMemset,
+ "inefficient RefPtr Vector");
+static_assert(VectorTraits<RefPtr<int>>::canMoveWithMemcpy,
+ "inefficient RefPtr Vector");
+static_assert(VectorTraits<RefPtr<int>>::canCompareWithMemcmp,
+ "inefficient RefPtr Vector");
+static_assert(VectorTraits<OwnPtr<int>>::canInitializeWithMemset,
+ "inefficient OwnPtr Vector");
+static_assert(VectorTraits<OwnPtr<int>>::canMoveWithMemcpy,
+ "inefficient OwnPtr Vector");
+static_assert(VectorTraits<OwnPtr<int>>::canCompareWithMemcmp,
+ "inefficient OwnPtr Vector");
template <typename First, typename Second>
struct VectorTraits<std::pair<First, Second>> {
- typedef VectorTraits<First> FirstTraits;
- typedef VectorTraits<Second> SecondTraits;
-
- static const bool needsDestruction = FirstTraits::needsDestruction || SecondTraits::needsDestruction;
- static const bool canInitializeWithMemset = FirstTraits::canInitializeWithMemset && SecondTraits::canInitializeWithMemset;
- static const bool canMoveWithMemcpy = FirstTraits::canMoveWithMemcpy && SecondTraits::canMoveWithMemcpy;
- static const bool canCopyWithMemcpy = FirstTraits::canCopyWithMemcpy && SecondTraits::canCopyWithMemcpy;
- static const bool canFillWithMemset = false;
- static const bool canCompareWithMemcmp = FirstTraits::canCompareWithMemcmp && SecondTraits::canCompareWithMemcmp;
- static const bool canClearUnusedSlotsWithMemset = FirstTraits::canClearUnusedSlotsWithMemset && SecondTraits::canClearUnusedSlotsWithMemset;
- template <typename U = void>
- struct NeedsTracingLazily {
- static const bool value = NeedsTracingTrait<FirstTraits>::value || NeedsTracingTrait<SecondTraits>::value;
- };
- static const WeakHandlingFlag weakHandlingFlag = NoWeakHandlingInCollections; // We don't support weak handling in vectors.
+ typedef VectorTraits<First> FirstTraits;
+ typedef VectorTraits<Second> SecondTraits;
+
+ static const bool needsDestruction =
+ FirstTraits::needsDestruction || SecondTraits::needsDestruction;
+ static const bool canInitializeWithMemset =
+ FirstTraits::canInitializeWithMemset &&
+ SecondTraits::canInitializeWithMemset;
+ static const bool canMoveWithMemcpy =
+ FirstTraits::canMoveWithMemcpy && SecondTraits::canMoveWithMemcpy;
+ static const bool canCopyWithMemcpy =
+ FirstTraits::canCopyWithMemcpy && SecondTraits::canCopyWithMemcpy;
+ static const bool canFillWithMemset = false;
+ static const bool canCompareWithMemcmp =
+ FirstTraits::canCompareWithMemcmp && SecondTraits::canCompareWithMemcmp;
+ static const bool canClearUnusedSlotsWithMemset =
+ FirstTraits::canClearUnusedSlotsWithMemset &&
+ SecondTraits::canClearUnusedSlotsWithMemset;
+ template <typename U = void>
+ struct NeedsTracingLazily {
+ static const bool value = NeedsTracingTrait<FirstTraits>::value ||
+ NeedsTracingTrait<SecondTraits>::value;
+ };
+ static const WeakHandlingFlag weakHandlingFlag =
+ NoWeakHandlingInCollections; // We don't support weak handling in vectors.
};
-} // namespace WTF
-
-#define WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(ClassName) \
-namespace WTF { \
-static_assert(!IsTriviallyDefaultConstructible<ClassName>::value || !IsTriviallyMoveAssignable<ClassName>::value || !std::is_scalar<ClassName>::value, "macro not needed"); \
-template <> \
-struct VectorTraits<ClassName> : SimpleClassVectorTraits<ClassName> {}; \
-}
-
-#define WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(ClassName) \
-namespace WTF { \
-static_assert(!IsTriviallyDefaultConstructible<ClassName>::value || !IsTriviallyMoveAssignable<ClassName>::value, "macro not needed"); \
-template <> \
-struct VectorTraits<ClassName> : VectorTraitsBase<ClassName> \
-{ \
- static const bool canInitializeWithMemset = true; \
- static const bool canClearUnusedSlotsWithMemset = true; \
- static const bool canMoveWithMemcpy = true; \
-}; \
-}
-
-#define WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(ClassName) \
-namespace WTF { \
-static_assert(!IsTriviallyDefaultConstructible<ClassName>::value, "macro not needed"); \
-template <> \
-struct VectorTraits<ClassName> : VectorTraitsBase<ClassName> \
-{ \
- static const bool canInitializeWithMemset = true; \
- static const bool canClearUnusedSlotsWithMemset = true; \
-}; \
-}
-
-#define WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS(ClassName) \
-namespace WTF { \
-static_assert(!IsTriviallyDefaultConstructible<ClassName>::value, "macro not needed"); \
-template <> \
-struct VectorTraits<ClassName> : VectorTraitsBase<ClassName> \
-{ \
- static const bool canClearUnusedSlotsWithMemset = true; \
-}; \
-}
+} // namespace WTF
+
+#define WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(ClassName) \
+ namespace WTF { \
+ static_assert(!IsTriviallyDefaultConstructible<ClassName>::value || \
+ !IsTriviallyMoveAssignable<ClassName>::value || \
+ !std::is_scalar<ClassName>::value, \
+ "macro not needed"); \
+ template <> \
+ struct VectorTraits<ClassName> : SimpleClassVectorTraits<ClassName> {}; \
+ }
+
+#define WTF_ALLOW_MOVE_AND_INIT_WITH_MEM_FUNCTIONS(ClassName) \
+ namespace WTF { \
+ static_assert(!IsTriviallyDefaultConstructible<ClassName>::value || \
+ !IsTriviallyMoveAssignable<ClassName>::value, \
+ "macro not needed"); \
+ template <> \
+ struct VectorTraits<ClassName> : VectorTraitsBase<ClassName> { \
+ static const bool canInitializeWithMemset = true; \
+ static const bool canClearUnusedSlotsWithMemset = true; \
+ static const bool canMoveWithMemcpy = true; \
+ }; \
+ }
+
+#define WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(ClassName) \
+ namespace WTF { \
+ static_assert(!IsTriviallyDefaultConstructible<ClassName>::value, \
+ "macro not needed"); \
+ template <> \
+ struct VectorTraits<ClassName> : VectorTraitsBase<ClassName> { \
+ static const bool canInitializeWithMemset = true; \
+ static const bool canClearUnusedSlotsWithMemset = true; \
+ }; \
+ }
+
+#define WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS(ClassName) \
+ namespace WTF { \
+ static_assert(!IsTriviallyDefaultConstructible<ClassName>::value, \
+ "macro not needed"); \
+ template <> \
+ struct VectorTraits<ClassName> : VectorTraitsBase<ClassName> { \
+ static const bool canClearUnusedSlotsWithMemset = true; \
+ }; \
+ }
using WTF::VectorTraits;
using WTF::SimpleClassVectorTraits;
-#endif // WTF_VectorTraits_h
+#endif // WTF_VectorTraits_h
« no previous file with comments | « third_party/WebKit/Source/wtf/VectorTest.cpp ('k') | third_party/WebKit/Source/wtf/WTF.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698