diff options
author | Mathieu Chartier <mathieuc@google.com> | 2014-03-27 16:09:46 -0700 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2014-03-28 11:35:02 -0700 |
commit | 4aeec176eaf11fe03f342aadcbb79142230270ed (patch) | |
tree | b2c7abd4b3624dc1f801f6a29893e0f66497f378 /runtime/gc/collector/mark_sweep.h | |
parent | a708e32a9f764a48175e705ec4bcd2201c84f492 (diff) | |
download | art-4aeec176eaf11fe03f342aadcbb79142230270ed.zip art-4aeec176eaf11fe03f342aadcbb79142230270ed.tar.gz art-4aeec176eaf11fe03f342aadcbb79142230270ed.tar.bz2 |
Refactor some GC code.
Reduced amount of code in mark sweep / semi space by moving
common logic to garbage_collector.cc. Cleaned up mod union tables
and deleted an unused implementation.
Change-Id: I4bcc6ba41afd96d230cfbaf4d6636f37c52e37ea
Diffstat (limited to 'runtime/gc/collector/mark_sweep.h')
-rw-r--r-- | runtime/gc/collector/mark_sweep.h | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/runtime/gc/collector/mark_sweep.h b/runtime/gc/collector/mark_sweep.h index 84b775a..9bf4cd1 100644 --- a/runtime/gc/collector/mark_sweep.h +++ b/runtime/gc/collector/mark_sweep.h @@ -32,33 +32,22 @@ namespace art { namespace mirror { class Class; class Object; - template<class T> class ObjectArray; class Reference; } // namespace mirror -class StackVisitor; class Thread; enum VisitRootFlags : uint8_t; namespace gc { +class Heap; + namespace accounting { - template <typename T> class AtomicStack; - class MarkIfReachesAllocspaceVisitor; - class ModUnionClearCardVisitor; - class ModUnionVisitor; - class ModUnionTableBitmap; - class MarkStackChunk; + template<typename T> class AtomicStack; typedef AtomicStack<mirror::Object*> ObjectStack; class SpaceBitmap; } // namespace accounting -namespace space { - class ContinuousSpace; -} // namespace space - -class Heap; - namespace collector { class MarkSweep : public GarbageCollector { @@ -137,8 +126,8 @@ class MarkSweep : public GarbageCollector { EXCLUSIVE_LOCKS_REQUIRED(Locks::heap_bitmap_lock_) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); - // Update and mark references from immune spaces. Virtual as overridden by StickyMarkSweep. - virtual void UpdateAndMarkModUnion() + // Update and mark references from immune spaces. + void UpdateAndMarkModUnion() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); // Pre clean cards to reduce how much work is needed in the pause. @@ -311,7 +300,7 @@ class MarkSweep : public GarbageCollector { accounting::ObjectStack* mark_stack_; - // Immune range, every object inside the immune range is assumed to be marked. + // Immune region, every object inside the immune range is assumed to be marked. ImmuneRegion immune_region_; // Parallel finger. |