diff options
author | Elliott Hughes <enh@google.com> | 2011-10-11 18:18:07 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2011-10-11 18:18:07 -0700 |
commit | c33a32bccc4c66ed82ce3a580b16636399385cb4 (patch) | |
tree | ef101d11157784c0724998d39e988a275ed4f69c /src/mark_sweep.cc | |
parent | a465c2034094eeb827ff9204951703dc5f269d60 (diff) | |
download | art-c33a32bccc4c66ed82ce3a580b16636399385cb4.zip art-c33a32bccc4c66ed82ce3a580b16636399385cb4.tar.gz art-c33a32bccc4c66ed82ce3a580b16636399385cb4.tar.bz2 |
Sweep the monitor list.
Change-Id: I343261206f8bbabd245b404dd95d532255e5d870
Diffstat (limited to 'src/mark_sweep.cc')
-rw-r--r-- | src/mark_sweep.cc | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/src/mark_sweep.cc b/src/mark_sweep.cc index 05f229d..79597ec 100644 --- a/src/mark_sweep.cc +++ b/src/mark_sweep.cc @@ -13,6 +13,7 @@ #include "logging.h" #include "macros.h" #include "mark_stack.h" +#include "monitor.h" #include "object.h" #include "runtime.h" #include "space.h" @@ -125,24 +126,9 @@ void MarkSweep::SweepJniWeakGlobals() { } } -struct InternTableEntryIsUnmarked : public InternTable::Predicate { - InternTableEntryIsUnmarked(MarkSweep* ms) : ms_(ms) { } - - bool operator()(const String* s) const { - return !ms_->IsMarked(s); - } - - MarkSweep* ms_; -}; - -void MarkSweep::SweepMonitorList() { - UNIMPLEMENTED(WARNING); - //dvmSweepMonitorList(&gDvm.monitorList, isUnmarkedObject); -} - void MarkSweep::SweepSystemWeaks() { - Runtime::Current()->GetInternTable()->RemoveWeakIf(InternTableEntryIsUnmarked(this)); - SweepMonitorList(); + Runtime::Current()->GetInternTable()->SweepInternTableWeaks(IsMarked, this); + Runtime::Current()->GetMonitorList()->SweepMonitorList(IsMarked, this); SweepJniWeakGlobals(); } |