ObjPtr misc cleanup

Check for subtypes in constructor.

Remove various calls to MakeObjPtr and ObjPtr::Ptr.

Bug: 31113334

Test: test-art-host
Change-Id: I8d680d514ea52cd64fc4f7c2e988926bc726174e
diff --git a/runtime/debugger.cc b/runtime/debugger.cc
index a7feeef..7006f70 100644
--- a/runtime/debugger.cc
+++ b/runtime/debugger.cc
@@ -1995,7 +1995,7 @@
   CHECK(thread_object != nullptr) << error;
   ArtField* java_lang_Thread_name_field =
       soa.DecodeField(WellKnownClasses::java_lang_Thread_name);
-  ObjPtr<mirror::String> s(java_lang_Thread_name_field->GetObject(thread_object));
+  ObjPtr<mirror::String> s(java_lang_Thread_name_field->GetObject(thread_object)->AsString());
   if (s != nullptr) {
     *name = s->ToModifiedUtf8();
   }