diff options
author | Mathieu Chartier <mathieuc@google.com> | 2014-02-07 12:18:39 -0800 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2014-02-08 15:23:36 -0800 |
commit | 412c7fced915fc8d4d5e4166e977d55c809168a6 (patch) | |
tree | b8efee7f46a440f3e89765b1e9b2aa6454839c87 /runtime/runtime.cc | |
parent | 109e2b34799a377a0407781fc32ec1ec607d6c41 (diff) | |
download | art-412c7fced915fc8d4d5e4166e977d55c809168a6.zip art-412c7fced915fc8d4d5e4166e977d55c809168a6.tar.gz art-412c7fced915fc8d4d5e4166e977d55c809168a6.tar.bz2 |
Make debugger / jdwp compaction safe.
Fixed GetInstances, GetReferringObjects, CountInstances to use
VisitObjects instead of the live bitmap.
We now treat the object registry as system weaks and update the
objects when/if they move. Also added the recent_allocation_records_
as roots.
Bug: 12936165
Change-Id: I615c289efbf2977ceab5c4ffa73d216d799e6e33
Diffstat (limited to 'runtime/runtime.cc')
-rw-r--r-- | runtime/runtime.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/runtime/runtime.cc b/runtime/runtime.cc index 17afb43..09d05d1 100644 --- a/runtime/runtime.cc +++ b/runtime/runtime.cc @@ -379,6 +379,7 @@ void Runtime::SweepSystemWeaks(RootVisitor* visitor, void* arg) { GetInternTable()->SweepInternTableWeaks(visitor, arg); GetMonitorList()->SweepMonitorList(visitor, arg); GetJavaVM()->SweepJniWeakGlobals(visitor, arg); + Dbg::UpdateObjectPointers(visitor, arg); } static gc::CollectorType ParseCollectorType(const std::string& option) { @@ -1495,12 +1496,14 @@ void Runtime::DisallowNewSystemWeaks() { monitor_list_->DisallowNewMonitors(); intern_table_->DisallowNewInterns(); java_vm_->DisallowNewWeakGlobals(); + Dbg::DisallowNewObjectRegistryObjects(); } void Runtime::AllowNewSystemWeaks() { monitor_list_->AllowNewMonitors(); intern_table_->AllowNewInterns(); java_vm_->AllowNewWeakGlobals(); + Dbg::AllowNewObjectRegistryObjects(); } void Runtime::SetCalleeSaveMethod(mirror::ArtMethod* method, CalleeSaveType type) { |