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

Unified Diff: tools/clang/blink_gc_plugin/tests/heap/stubs.h

Issue 2588943002: Disallow heap objects containing unsafe on-heap iterators. (Closed)
Patch Set: formatting Created 4 years 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
Index: tools/clang/blink_gc_plugin/tests/heap/stubs.h
diff --git a/tools/clang/blink_gc_plugin/tests/heap/stubs.h b/tools/clang/blink_gc_plugin/tests/heap/stubs.h
index 813ab127001bcc3913ebc6c18e908c5fa952790c..f8fde065babc844096fe4155a005b82500a393da 100644
--- a/tools/clang/blink_gc_plugin/tests/heap/stubs.h
+++ b/tools/clang/blink_gc_plugin/tests/heap/stubs.h
@@ -68,37 +68,62 @@ template<
class Vector : public VectorDestructorBase<inlineCapacity,
Allocator::isGarbageCollected,
VectorTraits<T>::needsDestruction> {
-public:
- size_t size();
- T& operator[](size_t);
+ public:
+ using iterator = T*;
+ using const_iterator = const T*;
+ using reverse_iterator = T*;
+ using const_reverse_iterator = const T*;
+
+ size_t size();
+ T& operator[](size_t);
};
-template<
- typename T,
- size_t inlineCapacity = 0,
- typename Allocator = DefaultAllocator>
-class Deque {};
+template <typename T,
+ size_t inlineCapacity = 0,
+ typename Allocator = DefaultAllocator>
+class Deque {
+ public:
+ using iterator = T*;
+ using const_iterator = const T*;
+ using reverse_iterator = T*;
+ using const_reverse_iterator = const T*;
+};
-template<
- typename ValueArg,
- typename HashArg = void,
- typename TraitsArg = void,
- typename Allocator = DefaultAllocator>
-class HashSet {};
+template <typename ValueArg,
+ typename HashArg = void,
+ typename TraitsArg = void,
+ typename Allocator = DefaultAllocator>
+class HashSet {
+ public:
+ typedef ValueArg* iterator;
+ typedef const ValueArg* const_iterator;
+ typedef ValueArg* reverse_iterator;
+ typedef const ValueArg* const_reverse_iterator;
+};
-template<
- typename ValueArg,
- typename HashArg = void,
- typename TraitsArg = void,
- typename Allocator = DefaultAllocator>
-class ListHashSet {};
+template <typename ValueArg,
+ typename HashArg = void,
+ typename TraitsArg = void,
+ typename Allocator = DefaultAllocator>
+class ListHashSet {
+ public:
+ typedef ValueArg* iterator;
+ typedef const ValueArg* const_iterator;
+ typedef ValueArg* reverse_iterator;
+ typedef const ValueArg* const_reverse_iterator;
+};
-template<
- typename ValueArg,
- typename HashArg = void,
- typename TraitsArg = void,
- typename Allocator = DefaultAllocator>
-class LinkedHashSet {};
+template <typename ValueArg,
+ typename HashArg = void,
+ typename TraitsArg = void,
+ typename Allocator = DefaultAllocator>
+class LinkedHashSet {
+ public:
+ typedef ValueArg* iterator;
+ typedef const ValueArg* const_iterator;
+ typedef ValueArg* reverse_iterator;
+ typedef const ValueArg* const_reverse_iterator;
+};
template<
typename ValueArg,
@@ -107,15 +132,19 @@ template<
typename Allocator = DefaultAllocator>
class HashCountedSet {};
-template<
- typename KeyArg,
- typename MappedArg,
- typename HashArg = void,
- typename KeyTraitsArg = void,
- typename MappedTraitsArg = void,
- typename Allocator = DefaultAllocator>
-class HashMap {};
-
+template <typename KeyArg,
+ typename MappedArg,
+ typename HashArg = void,
+ typename KeyTraitsArg = void,
+ typename MappedTraitsArg = void,
+ typename Allocator = DefaultAllocator>
+class HashMap {
+ public:
+ typedef MappedArg* iterator;
+ typedef const MappedArg* const_iterator;
+ typedef MappedArg* reverse_iterator;
+ typedef const MappedArg* const_reverse_iterator;
+};
}
// Empty namespace declaration to exercise internal

Powered by Google App Engine
This is Rietveld 408576698