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

Side by Side Diff: tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef FIELDS_ILLEGAL_TRACING_H_ 5 #ifndef FIELDS_ILLEGAL_TRACING_H_
6 #define FIELDS_ILLEGAL_TRACING_H_ 6 #define FIELDS_ILLEGAL_TRACING_H_
7 7
8 #include "heap/stubs.h" 8 #include "heap/stubs.h"
9 9
10 namespace blink { 10 namespace blink {
(...skipping 20 matching lines...) Expand all
31 31
32 class PartObject { 32 class PartObject {
33 DISALLOW_NEW(); 33 DISALLOW_NEW();
34 public: 34 public:
35 void trace(Visitor*); 35 void trace(Visitor*);
36 private: 36 private:
37 OwnPtr<HeapObject> m_obj1; 37 OwnPtr<HeapObject> m_obj1;
38 RefPtr<HeapObject> m_obj2; 38 RefPtr<HeapObject> m_obj2;
39 bar::unique_ptr<HeapObject> m_obj3; 39 bar::unique_ptr<HeapObject> m_obj3;
40 std::unique_ptr<HeapObject> m_obj4; 40 std::unique_ptr<HeapObject> m_obj4;
41 Vector<int>::iterator m_iterator1;
42 HeapVector<Member<HeapObject>>::iterator m_iterator2;
43 HeapHashSet<PartObject>::const_iterator m_iterator3;
41 }; 44 };
42 45
43 class HeapObject : public GarbageCollectedFinalized<HeapObject> { 46 class HeapObject : public GarbageCollectedFinalized<HeapObject> {
44 public: 47 public:
45 void trace(Visitor*); 48 void trace(Visitor*);
46 private: 49 private:
47 PartObject m_part; 50 PartObject m_part;
48 OwnPtr<HeapObject> m_obj1; 51 OwnPtr<HeapObject> m_obj1;
49 RefPtr<HeapObject> m_obj2; 52 RefPtr<HeapObject> m_obj2;
50 bar::unique_ptr<HeapObject> m_obj3; 53 bar::unique_ptr<HeapObject> m_obj3;
51 std::unique_ptr<HeapObject> m_obj4; 54 std::unique_ptr<HeapObject> m_obj4;
55 HeapHashMap<int, Member<HeapObject>>::reverse_iterator m_iterator3;
56 HeapDeque<Member<HeapObject>>::const_reverse_iterator m_iterator4;
57 HeapListHashSet<Member<HeapObject>>::const_iterator m_iterator5;
58 HeapLinkedHashSet<Member<HeapObject>>::const_iterator m_iterator6;
52 }; 59 };
53 60
54 } 61 }
55 62
56 #endif 63 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698