diff options
Diffstat (limited to 'openjdkjvmti/ti_heap.cc')
| -rw-r--r-- | openjdkjvmti/ti_heap.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/openjdkjvmti/ti_heap.cc b/openjdkjvmti/ti_heap.cc index 2a1d44207a..01864cd312 100644 --- a/openjdkjvmti/ti_heap.cc +++ b/openjdkjvmti/ti_heap.cc @@ -1851,7 +1851,9 @@ static void ReplaceWeakRoots(art::Thread* self, const ObjectMap& map_; }; ReplaceWeaksVisitor rwv(map); - art::Runtime::Current()->SweepSystemWeaks(&rwv); + art::Runtime* runtime = art::Runtime::Current(); + runtime->SweepSystemWeaks(&rwv); + runtime->GetThreadList()->SweepInterpreterCaches(&rwv); // Re-add the object tags. At this point all weak-references to the old_obj_ptr are gone. event_handler->ForEachEnv(self, [&](ArtJvmTiEnv* env) { // Cannot have REQUIRES(art::Locks::mutator_lock_) since ForEachEnv doesn't require it. |