ART: Faster type check bitstring initialization.

Reuse depth from recursive call instead of calculating it
repeatedly at every level of recursion. Pass pointers by
value instead of reference.

Test: m test-art-host-gtest
Test: testrunner.py --host --jit
Bug: 70734806
Change-Id: Idd405a2c3b04adbfd544639358dc562b32e4c34f
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index 192517f..727dd14 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -462,10 +462,8 @@
     //
     // We take the lock here to avoid using NO_THREAD_SAFETY_ANALYSIS.
     MutexLock subtype_check_lock(Thread::Current(), *Locks::subtype_check_lock_);
-    mirror::Class* java_lang_Object_ptr = java_lang_Object.Get();
-    SubtypeCheck<mirror::Class*>::EnsureInitialized(java_lang_Object_ptr);
-    mirror::Class* java_lang_Class_ptr =  java_lang_Class.Get();
-    SubtypeCheck<mirror::Class*>::EnsureInitialized(java_lang_Class_ptr);
+    SubtypeCheck<ObjPtr<mirror::Class>>::EnsureInitialized(java_lang_Object.Get());
+    SubtypeCheck<ObjPtr<mirror::Class>>::EnsureInitialized(java_lang_Class.Get());
   }
 
   // Object[] next to hold class roots.
@@ -1872,8 +1870,7 @@
       ScopedTrace trace("Recalculate app image SubtypeCheck bitstrings");
       MutexLock subtype_check_lock(Thread::Current(), *Locks::subtype_check_lock_);
       for (const ClassTable::TableSlot& root : temp_set) {
-        mirror::Class* root_klass = root.Read();
-        SubtypeCheck<mirror::Class*>::EnsureInitialized(root_klass);
+        SubtypeCheck<ObjPtr<mirror::Class>>::EnsureInitialized(root.Read());
       }
     }
   }
@@ -5220,8 +5217,7 @@
   // or Overflowed (can be used as a source for IsSubClass check).
   {
     MutexLock subtype_check_lock(Thread::Current(), *Locks::subtype_check_lock_);
-    ObjPtr<mirror::Class> c_ptr(c.Get());
-    SubtypeCheck<ObjPtr<mirror::Class>>::EnsureInitialized(c_ptr);
+    SubtypeCheck<ObjPtr<mirror::Class>>::EnsureInitialized(c.Get());
     // TODO: Avoid taking subtype_check_lock_ if SubtypeCheck is already initialized.
   }
   const bool success = InitializeClass(self, c, can_init_fields, can_init_parents);