Revert "Disable opaque JNI Ids for now."

We were incorrectly using a potentially out-of-date pointer to access
class object fields. This could cause segvs if the class object moves
during certain allocations relating to JNI id allocation.

This reverts commit 1be9c72dd49e7620dd76a8b9cef23d7cde0a6b01.

Reason for revert: Fixed issue with gcstress
Test: ./test.py --host --debuggable --gcstress
Bug: 134162467

Change-Id: I6ee7fc4485bbae6f0f1d4f4af0e8c2bc88bf4075
diff --git a/runtime/mirror/class.h b/runtime/mirror/class.h
index 144350f..63d6b60 100644
--- a/runtime/mirror/class.h
+++ b/runtime/mirror/class.h
@@ -1230,11 +1230,14 @@
       REQUIRES_SHARED(Locks::mutator_lock_);
 
   // Get or create the various jni id arrays in a lock-less thread safe manner.
-  ObjPtr<PointerArray> GetOrCreateMethodIds() REQUIRES_SHARED(Locks::mutator_lock_);
+  static ObjPtr<PointerArray> GetOrCreateMethodIds(Handle<Class> h_this)
+      REQUIRES_SHARED(Locks::mutator_lock_);
   ObjPtr<PointerArray> GetMethodIds() REQUIRES_SHARED(Locks::mutator_lock_);
-  ObjPtr<PointerArray> GetOrCreateStaticFieldIds() REQUIRES_SHARED(Locks::mutator_lock_);
+  static ObjPtr<PointerArray> GetOrCreateStaticFieldIds(Handle<Class> h_this)
+      REQUIRES_SHARED(Locks::mutator_lock_);
   ObjPtr<PointerArray> GetStaticFieldIds() REQUIRES_SHARED(Locks::mutator_lock_);
-  ObjPtr<PointerArray> GetOrCreateInstanceFieldIds() REQUIRES_SHARED(Locks::mutator_lock_);
+  static ObjPtr<PointerArray> GetOrCreateInstanceFieldIds(Handle<Class> h_this)
+      REQUIRES_SHARED(Locks::mutator_lock_);
   ObjPtr<PointerArray> GetInstanceFieldIds() REQUIRES_SHARED(Locks::mutator_lock_);
 
   // Calculate the index in the ifields_, methods_ or sfields_ arrays a method is located at. This