[vm, gc] Remove dead code from weak handle visitors.

TEST=ci
Change-Id: I10619b7970de19047c9af77fc82dc9d3009f34f2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/274801
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
diff --git a/runtime/vm/heap/marker.cc b/runtime/vm/heap/marker.cc
index 38f1cfe..fb64d4d 100644
--- a/runtime/vm/heap/marker.cc
+++ b/runtime/vm/heap/marker.cc
@@ -442,13 +442,7 @@
 typedef MarkingVisitorBase<true> SyncMarkingVisitor;
 
 static bool IsUnreachable(const ObjectPtr raw_obj) {
-  if (!raw_obj->IsHeapObject()) {
-    return false;
-  }
-  if (raw_obj == Object::null()) {
-    return true;
-  }
-  if (!raw_obj->IsOldObject()) {
+  if (raw_obj->IsSmiOrNewObject()) {
     return false;
   }
   return !raw_obj->untag()->IsMarked();
@@ -456,9 +450,7 @@
 
 class MarkingWeakVisitor : public HandleVisitor {
  public:
-  explicit MarkingWeakVisitor(Thread* thread)
-      : HandleVisitor(thread),
-        class_table_(thread->isolate_group()->class_table()) {}
+  explicit MarkingWeakVisitor(Thread* thread) : HandleVisitor(thread) {}
 
   void VisitHandle(uword addr) {
     FinalizablePersistentHandle* handle =
@@ -470,8 +462,6 @@
   }
 
  private:
-  ClassTable* class_table_;
-
   DISALLOW_COPY_AND_ASSIGN(MarkingWeakVisitor);
 };
 
diff --git a/runtime/vm/heap/scavenger.cc b/runtime/vm/heap/scavenger.cc
index c6522e7..d827b5c 100644
--- a/runtime/vm/heap/scavenger.cc
+++ b/runtime/vm/heap/scavenger.cc
@@ -564,20 +564,29 @@
 typedef ScavengerVisitorBase<false> SerialScavengerVisitor;
 typedef ScavengerVisitorBase<true> ParallelScavengerVisitor;
 
+static bool IsUnreachable(ObjectPtr* ptr) {
+  ObjectPtr raw_obj = *ptr;
+  if (raw_obj->IsSmiOrOldObject()) {
+    return false;
+  }
+  uword raw_addr = UntaggedObject::ToAddr(raw_obj);
+  uword header = *reinterpret_cast<uword*>(raw_addr);
+  if (IsForwarding(header)) {
+    *ptr = ForwardedObj(header);
+    return false;
+  }
+  return true;
+}
+
 class ScavengerWeakVisitor : public HandleVisitor {
  public:
-  ScavengerWeakVisitor(Thread* thread, Scavenger* scavenger)
-      : HandleVisitor(thread),
-        scavenger_(scavenger),
-        class_table_(thread->isolate_group()->class_table()) {
-    ASSERT(scavenger->heap_->isolate_group() == thread->isolate_group());
-  }
+  explicit ScavengerWeakVisitor(Thread* thread) : HandleVisitor(thread) {}
 
   void VisitHandle(uword addr) {
     FinalizablePersistentHandle* handle =
         reinterpret_cast<FinalizablePersistentHandle*>(addr);
     ObjectPtr* p = handle->ptr_addr();
-    if (scavenger_->IsUnreachable(p)) {
+    if (IsUnreachable(p)) {
       handle->UpdateUnreachable(thread()->isolate_group());
     } else {
       handle->UpdateRelocated(thread()->isolate_group());
@@ -585,9 +594,6 @@
   }
 
  private:
-  Scavenger* scavenger_;
-  ClassTable* class_table_;
-
   DISALLOW_COPY_AND_ASSIGN(ScavengerWeakVisitor);
 };
 
@@ -1195,27 +1201,10 @@
   IterateRememberedCards(visitor);
 }
 
-bool Scavenger::IsUnreachable(ObjectPtr* p) {
-  ObjectPtr raw_obj = *p;
-  if (!raw_obj->IsHeapObject()) {
-    return false;
-  }
-  if (!raw_obj->IsNewObject()) {
-    return false;
-  }
-  uword raw_addr = UntaggedObject::ToAddr(raw_obj);
-  uword header = *reinterpret_cast<uword*>(raw_addr);
-  if (IsForwarding(header)) {
-    *p = ForwardedObj(header);
-    return false;
-  }
-  return true;
-}
-
 void Scavenger::MournWeakHandles() {
   Thread* thread = Thread::Current();
   TIMELINE_FUNCTION_GC_DURATION(thread, "MournWeakHandles");
-  ScavengerWeakVisitor weak_visitor(thread, this);
+  ScavengerWeakVisitor weak_visitor(thread);
   heap_->isolate_group()->VisitWeakPersistentHandles(&weak_visitor);
 }
 
diff --git a/runtime/vm/heap/scavenger.h b/runtime/vm/heap/scavenger.h
index 126235e..8ff4c90 100644
--- a/runtime/vm/heap/scavenger.h
+++ b/runtime/vm/heap/scavenger.h
@@ -278,8 +278,6 @@
   void MournWeakHandles();
   void Epilogue(SemiSpace* from);
 
-  bool IsUnreachable(ObjectPtr* p);
-
   void VerifyStoreBuffers();
 
   void UpdateMaxHeapCapacity();