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

Side by Side Diff: third_party/WebKit/Source/platform/heap/InlinedGlobalMarkingVisitor.h

Issue 2570483002: Revert of Simple BlinkGC heap compaction. (Closed)
Patch Set: 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 InlinedGlobalMarkingVisitor_h 5 #ifndef InlinedGlobalMarkingVisitor_h
6 #define InlinedGlobalMarkingVisitor_h 6 #define InlinedGlobalMarkingVisitor_h
7 7
8 #include "platform/heap/MarkingVisitorImpl.h" 8 #include "platform/heap/MarkingVisitorImpl.h"
9 9
10 namespace blink { 10 namespace blink {
11 11
12 class InlinedGlobalMarkingVisitor final 12 class InlinedGlobalMarkingVisitor final
13 : public VisitorHelper<InlinedGlobalMarkingVisitor>, 13 : public VisitorHelper<InlinedGlobalMarkingVisitor>,
14 public MarkingVisitorImpl<InlinedGlobalMarkingVisitor> { 14 public MarkingVisitorImpl<InlinedGlobalMarkingVisitor> {
15 public: 15 public:
16 friend class VisitorHelper<InlinedGlobalMarkingVisitor>; 16 friend class VisitorHelper<InlinedGlobalMarkingVisitor>;
17 using Helper = VisitorHelper<InlinedGlobalMarkingVisitor>; 17 using Helper = VisitorHelper<InlinedGlobalMarkingVisitor>;
18 friend class MarkingVisitorImpl<InlinedGlobalMarkingVisitor>; 18 friend class MarkingVisitorImpl<InlinedGlobalMarkingVisitor>;
19 using Impl = MarkingVisitorImpl<InlinedGlobalMarkingVisitor>; 19 using Impl = MarkingVisitorImpl<InlinedGlobalMarkingVisitor>;
20 20
21 InlinedGlobalMarkingVisitor(ThreadState* state, 21 explicit InlinedGlobalMarkingVisitor(ThreadState* state)
22 Visitor::MarkingMode markingMode) 22 : VisitorHelper(state) {}
23 : VisitorHelper(state), m_markingMode(markingMode) {}
24 23
25 // Hack to unify interface to visitor->trace(). 24 // Hack to unify interface to visitor->trace().
26 // Without this hack, we need to use visitor.trace() for 25 // Without this hack, we need to use visitor.trace() for
27 // trace(InlinedGlobalMarkingVisitor) and visitor->trace() for 26 // trace(InlinedGlobalMarkingVisitor) and visitor->trace() for
28 // trace(Visitor*). 27 // trace(Visitor*).
29 InlinedGlobalMarkingVisitor* operator->() { return this; } 28 InlinedGlobalMarkingVisitor* operator->() { return this; }
30 29
31 using Impl::mark; 30 using Impl::mark;
32 using Impl::ensureMarked; 31 using Impl::ensureMarked;
33 using Impl::registerDelayedMarkNoTracing; 32 using Impl::registerDelayedMarkNoTracing;
(...skipping 14 matching lines...) Expand all
48 } 47 }
49 48
50 protected: 49 protected:
51 // Methods to be called from MarkingVisitorImpl. 50 // Methods to be called from MarkingVisitorImpl.
52 51
53 inline bool shouldMarkObject(const void*) const { 52 inline bool shouldMarkObject(const void*) const {
54 // As this is global marking visitor, we need to mark all objects. 53 // As this is global marking visitor, we need to mark all objects.
55 return true; 54 return true;
56 } 55 }
57 56
58 inline Visitor::MarkingMode getMarkingMode() const { return m_markingMode; } 57 inline Visitor::MarkingMode getMarkingMode() const {
58 return Visitor::GlobalMarking;
59 }
59 60
60 private: 61 private:
61 static InlinedGlobalMarkingVisitor fromHelper(Helper* helper) { 62 static InlinedGlobalMarkingVisitor fromHelper(Helper* helper) {
62 return *static_cast<InlinedGlobalMarkingVisitor*>(helper); 63 return *static_cast<InlinedGlobalMarkingVisitor*>(helper);
63 } 64 }
64
65 // TODO(sof): attempt to unify this field with Visitor::m_markingMode.
66 const Visitor::MarkingMode m_markingMode;
67 }; 65 };
68 66
69 inline void GarbageCollectedMixin::trace(InlinedGlobalMarkingVisitor) {} 67 inline void GarbageCollectedMixin::trace(InlinedGlobalMarkingVisitor) {}
70 68
71 } // namespace blink 69 } // namespace blink
72 70
73 #endif 71 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/heap/HeapTest.cpp ('k') | third_party/WebKit/Source/platform/heap/MarkingVisitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698