ObjPtr<>-ify Monitor/-Pool.

Test: m test-art-host-gtest
Test: testrunner.py --host
Bug: 31113334
Change-Id: I2d2ebc5ef56e73e5678e0cfcd84c479611dfcca8
diff --git a/runtime/monitor_objects_stack_visitor.h b/runtime/monitor_objects_stack_visitor.h
index 3968239..8e148aa 100644
--- a/runtime/monitor_objects_stack_visitor.h
+++ b/runtime/monitor_objects_stack_visitor.h
@@ -54,70 +54,7 @@
     kEndStackWalk,
   };
 
-  bool VisitFrame() final REQUIRES_SHARED(Locks::mutator_lock_) {
-    ArtMethod* m = GetMethod();
-    if (m->IsRuntimeMethod()) {
-      return true;
-    }
-
-    VisitMethodResult vmrEntry = StartMethod(m, frame_count);
-    switch (vmrEntry) {
-      case VisitMethodResult::kContinueMethod:
-        break;
-      case VisitMethodResult::kSkipMethod:
-        return true;
-      case VisitMethodResult::kEndStackWalk:
-        return false;
-    }
-
-    if (frame_count == 0) {
-      // Top frame, check for blocked state.
-
-      mirror::Object* monitor_object;
-      uint32_t lock_owner_tid;
-      ThreadState state = Monitor::FetchState(GetThread(),
-                                              &monitor_object,
-                                              &lock_owner_tid);
-      switch (state) {
-        case kWaiting:
-        case kTimedWaiting:
-          VisitWaitingObject(monitor_object, state);
-          break;
-        case kSleeping:
-          VisitSleepingObject(monitor_object);
-          break;
-
-        case kBlocked:
-        case kWaitingForLockInflation:
-          VisitBlockedOnObject(monitor_object, state, lock_owner_tid);
-          break;
-
-        default:
-          break;
-      }
-    }
-
-    if (dump_locks) {
-      // Visit locks, but do not abort on errors. This could trigger a nested abort.
-      // Skip visiting locks if dump_locks is false as it would cause a bad_mutexes_held in
-      // RegTypeCache::RegTypeCache due to thread_list_lock.
-      Monitor::VisitLocks(this, VisitLockedObject, this, false);
-    }
-
-    ++frame_count;
-
-    VisitMethodResult vmrExit = EndMethod(m);
-    switch (vmrExit) {
-      case VisitMethodResult::kContinueMethod:
-      case VisitMethodResult::kSkipMethod:
-        return true;
-
-      case VisitMethodResult::kEndStackWalk:
-        return false;
-    }
-    LOG(FATAL) << "Unreachable";
-    UNREACHABLE();
-  }
+  bool VisitFrame() final REQUIRES_SHARED(Locks::mutator_lock_);
 
  protected:
   virtual VisitMethodResult StartMethod(ArtMethod* m, size_t frame_nr)
@@ -125,31 +62,22 @@
   virtual VisitMethodResult EndMethod(ArtMethod* m)
       REQUIRES_SHARED(Locks::mutator_lock_) = 0;
 
-  virtual void VisitWaitingObject(mirror::Object* obj, ThreadState state)
+  virtual void VisitWaitingObject(ObjPtr<mirror::Object> obj, ThreadState state)
       REQUIRES_SHARED(Locks::mutator_lock_) = 0;
-  virtual void VisitSleepingObject(mirror::Object* obj)
+  virtual void VisitSleepingObject(ObjPtr<mirror::Object> obj)
       REQUIRES_SHARED(Locks::mutator_lock_) = 0;
-  virtual void VisitBlockedOnObject(mirror::Object* obj, ThreadState state, uint32_t owner_tid)
+  virtual void VisitBlockedOnObject(ObjPtr<mirror::Object> obj,
+                                    ThreadState state,
+                                    uint32_t owner_tid)
       REQUIRES_SHARED(Locks::mutator_lock_) = 0;
-  virtual void VisitLockedObject(mirror::Object* obj)
+  virtual void VisitLockedObject(ObjPtr<mirror::Object> obj)
       REQUIRES_SHARED(Locks::mutator_lock_) = 0;
 
   size_t frame_count;
 
  private:
-  static void VisitLockedObject(mirror::Object* o, void* context)
-      REQUIRES_SHARED(Locks::mutator_lock_) {
-    MonitorObjectsStackVisitor* self = reinterpret_cast<MonitorObjectsStackVisitor*>(context);
-    if (o != nullptr) {
-      if (kUseReadBarrier && Thread::Current()->GetIsGcMarking()) {
-        // We may call Thread::Dump() in the middle of the CC thread flip and this thread's stack
-        // may have not been flipped yet and "o" may be a from-space (stale) ref, in which case the
-        // IdentityHashCode call below will crash. So explicitly mark/forward it here.
-        o = ReadBarrier::Mark(o);
-      }
-    }
-    self->VisitLockedObject(o);
-  }
+  static void VisitLockedObject(ObjPtr<mirror::Object> o, void* context)
+      REQUIRES_SHARED(Locks::mutator_lock_);
 
   const bool dump_locks;
 };