hotspot/src/share/vm/prims/jni.cpp
changeset 13728 882756847a04
parent 13195 be27e1b6a4b9
child 13975 2f7431485cfa
child 13952 e3cf184080bc
--- a/hotspot/src/share/vm/prims/jni.cpp	Fri Aug 31 16:39:35 2012 -0700
+++ b/hotspot/src/share/vm/prims/jni.cpp	Sat Sep 01 13:25:18 2012 -0400
@@ -41,7 +41,7 @@
 #include "oops/instanceKlass.hpp"
 #include "oops/instanceOop.hpp"
 #include "oops/markOop.hpp"
-#include "oops/methodOop.hpp"
+#include "oops/method.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "oops/objArrayOop.hpp"
 #include "oops/oop.inline.hpp"
@@ -208,7 +208,7 @@
 
 // out-of-line helpers for class jfieldIDWorkaround:
 
-bool jfieldIDWorkaround::is_valid_jfieldID(klassOop k, jfieldID id) {
+bool jfieldIDWorkaround::is_valid_jfieldID(Klass* k, jfieldID id) {
   if (jfieldIDWorkaround::is_instance_jfieldID(k, id)) {
     uintptr_t as_uint = (uintptr_t) id;
     intptr_t offset = raw_instance_offset(id);
@@ -217,7 +217,7 @@
         return false;
       }
     }
-    return instanceKlass::cast(k)->contains_field_offset(offset);
+    return InstanceKlass::cast(k)->contains_field_offset(offset);
   } else {
     JNIid* result = (JNIid*) id;
 #ifdef ASSERT
@@ -229,14 +229,14 @@
 }
 
 
-intptr_t jfieldIDWorkaround::encode_klass_hash(klassOop k, intptr_t offset) {
+intptr_t jfieldIDWorkaround::encode_klass_hash(Klass* k, intptr_t offset) {
   if (offset <= small_offset_mask) {
-    klassOop field_klass = k;
-    klassOop super_klass = Klass::cast(field_klass)->super();
+    Klass* field_klass = k;
+    Klass* super_klass = Klass::cast(field_klass)->super();
     // With compressed oops the most super class with nonstatic fields would
     // be the owner of fields embedded in the header.
-    while (instanceKlass::cast(super_klass)->has_nonstatic_fields() &&
-           instanceKlass::cast(super_klass)->contains_field_offset(offset)) {
+    while (InstanceKlass::cast(super_klass)->has_nonstatic_fields() &&
+           InstanceKlass::cast(super_klass)->contains_field_offset(offset)) {
       field_klass = super_klass;   // super contains the field also
       super_klass = Klass::cast(field_klass)->super();
     }
@@ -256,7 +256,7 @@
   }
 }
 
-bool jfieldIDWorkaround::klass_hash_ok(klassOop k, jfieldID id) {
+bool jfieldIDWorkaround::klass_hash_ok(Klass* k, jfieldID id) {
   uintptr_t as_uint = (uintptr_t) id;
   intptr_t klass_hash = (as_uint >> klass_shift) & klass_mask;
   do {
@@ -269,7 +269,7 @@
   return false;
 }
 
-void jfieldIDWorkaround::verify_instance_jfieldID(klassOop k, jfieldID id) {
+void jfieldIDWorkaround::verify_instance_jfieldID(Klass* k, jfieldID id) {
   guarantee(jfieldIDWorkaround::is_instance_jfieldID(k, id), "must be an instance field" );
   uintptr_t as_uint = (uintptr_t) id;
   intptr_t offset = raw_instance_offset(id);
@@ -288,7 +288,7 @@
 #endif
     }
   }
-  guarantee(instanceKlass::cast(k)->contains_field_offset(offset),
+  guarantee(InstanceKlass::cast(k)->contains_field_offset(offset),
       "Bug in native code: jfieldID offset must address interior of object");
 }
 
@@ -405,7 +405,7 @@
       ClassLoader::sync_JNIDefineClassLockFreeCounter()->inc();
     }
   }
-  klassOop k = SystemDictionary::resolve_from_stream(class_name, class_loader,
+  Klass* k = SystemDictionary::resolve_from_stream(class_name, class_loader,
                                                      Handle(), &st, true,
                                                      CHECK_NULL);
 
@@ -474,9 +474,9 @@
       }
       oop mirror = (oop) result.get_jobject();
       loader = Handle(THREAD,
-        instanceKlass::cast(java_lang_Class::as_klassOop(mirror))->class_loader());
+        InstanceKlass::cast(java_lang_Class::as_Klass(mirror))->class_loader());
       protection_domain = Handle(THREAD,
-        instanceKlass::cast(java_lang_Class::as_klassOop(mirror))->protection_domain());
+        InstanceKlass::cast(java_lang_Class::as_Klass(mirror))->protection_domain());
     }
   } else {
     // We call ClassLoader.getSystemClassLoader to obtain the system class loader.
@@ -488,7 +488,7 @@
                                         protection_domain, true, thread);
 
   if (TraceClassResolution && result != NULL) {
-    trace_class_resolution(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(result)));
+    trace_class_resolution(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(result)));
   }
 
   // If we were the first invocation of jni_FindClass, we enable compilation again
@@ -531,12 +531,12 @@
     mirror = java_lang_reflect_Method::clazz(reflected);
     slot   = java_lang_reflect_Method::slot(reflected);
   }
-  klassOop k     = java_lang_Class::as_klassOop(mirror);
+  Klass* k     = java_lang_Class::as_Klass(mirror);
 
   KlassHandle k1(THREAD, k);
   // Make sure class is initialized before handing id's out to methods
   Klass::cast(k1())->initialize(CHECK_NULL);
-  methodOop m = instanceKlass::cast(k1())->method_with_idnum(slot);
+  Method* m = InstanceKlass::cast(k1())->method_with_idnum(slot);
   ret = m==NULL? NULL : m->jmethod_id();  // return NULL if reflected method deleted
   return ret;
 JNI_END
@@ -562,7 +562,7 @@
   // field is a handle to a java.lang.reflect.Field object
   oop reflected   = JNIHandles::resolve_non_null(field);
   oop mirror      = java_lang_reflect_Field::clazz(reflected);
-  klassOop k      = java_lang_Class::as_klassOop(mirror);
+  Klass* k      = java_lang_Class::as_Klass(mirror);
   int slot        = java_lang_reflect_Field::slot(reflected);
   int modifiers   = java_lang_reflect_Field::modifiers(reflected);
 
@@ -572,11 +572,11 @@
 
   // First check if this is a static field
   if (modifiers & JVM_ACC_STATIC) {
-    intptr_t offset = instanceKlass::cast(k1())->field_offset( slot );
-    JNIid* id = instanceKlass::cast(k1())->jni_id_for(offset);
+    intptr_t offset = InstanceKlass::cast(k1())->field_offset( slot );
+    JNIid* id = InstanceKlass::cast(k1())->jni_id_for(offset);
     assert(id != NULL, "corrupt Field object");
     debug_only(id->set_is_static_field_id();)
-    // A jfieldID for a static field is a JNIid specifying the field holder and the offset within the klassOop
+    // A jfieldID for a static field is a JNIid specifying the field holder and the offset within the Klass*
     ret = jfieldIDWorkaround::to_static_jfieldID(id);
     return ret;
   }
@@ -584,8 +584,8 @@
   // The slot is the index of the field description in the field-array
   // The jfieldID is the offset of the field within the object
   // It may also have hash bits for k, if VerifyJNIFields is turned on.
-  intptr_t offset = instanceKlass::cast(k1())->field_offset( slot );
-  assert(instanceKlass::cast(k1())->contains_field_offset(offset), "stay within object");
+  intptr_t offset = InstanceKlass::cast(k1())->field_offset( slot );
+  assert(InstanceKlass::cast(k1())->contains_field_offset(offset), "stay within object");
   ret = jfieldIDWorkaround::to_instance_jfieldID(k1(), offset);
   return ret;
 JNI_END
@@ -608,7 +608,7 @@
   jobject ret = NULL;
   DT_RETURN_MARK(ToReflectedMethod, jobject, (const jobject&)ret);
 
-  methodHandle m (THREAD, JNIHandles::resolve_jmethod_id(method_id));
+  methodHandle m (THREAD, Method::resolve_jmethod_id(method_id));
   assert(m->is_static() == (isStatic != 0), "jni_ToReflectedMethod access flags doesn't match");
   oop reflection_method;
   if (m->is_initializer()) {
@@ -646,13 +646,13 @@
   // arrays return Object
   // interfaces return NULL
   // proper classes return Klass::super()
-  klassOop k = java_lang_Class::as_klassOop(mirror);
+  Klass* k = java_lang_Class::as_Klass(mirror);
   if (Klass::cast(k)->is_interface()) return NULL;
 
   // return mirror for superclass
-  klassOop super = Klass::cast(k)->java_super();
+  Klass* super = Klass::cast(k)->java_super();
   // super2 is the value computed by the compiler's getSuperClass intrinsic:
-  debug_only(klassOop super2 = ( Klass::cast(k)->oop_is_javaArray()
+  debug_only(Klass* super2 = ( Klass::cast(k)->oop_is_array()
                                  ? SystemDictionary::Object_klass()
                                  : Klass::cast(k)->super() ) );
   assert(super == super2,
@@ -682,8 +682,8 @@
 #endif /* USDT2 */
     return ret;
   }
-  klassOop sub_klass   = java_lang_Class::as_klassOop(sub_mirror);
-  klassOop super_klass = java_lang_Class::as_klassOop(super_mirror);
+  Klass* sub_klass   = java_lang_Class::as_Klass(sub_mirror);
+  Klass* super_klass = java_lang_Class::as_Klass(super_mirror);
   assert(sub_klass != NULL && super_klass != NULL, "invalid arguments to jni_IsAssignableFrom");
   jboolean ret = Klass::cast(sub_klass)->is_subtype_of(super_klass) ?
                    JNI_TRUE : JNI_FALSE;
@@ -736,7 +736,7 @@
   jint ret = JNI_OK;
   DT_RETURN_MARK(ThrowNew, jint, (const jint&)ret);
 
-  instanceKlass* k = instanceKlass::cast(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz)));
+  InstanceKlass* k = InstanceKlass::cast(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
   Symbol*  name = k->name();
   Handle class_loader (THREAD,  k->class_loader());
   Handle protection_domain (THREAD, k->protection_domain());
@@ -1157,7 +1157,7 @@
     set_ap(rap);
   }
   JNI_ArgumentPusherVaArg(jmethodID method_id, va_list rap)
-      : JNI_ArgumentPusher(JNIHandles::resolve_jmethod_id(method_id)->signature()) {
+      : JNI_ArgumentPusher(Method::resolve_jmethod_id(method_id)->signature()) {
     set_ap(rap);
   }
 
@@ -1228,7 +1228,7 @@
     set_ap(rap);
   }
   JNI_ArgumentPusherArray(jmethodID method_id, const jvalue *rap)
-      : JNI_ArgumentPusher(JNIHandles::resolve_jmethod_id(method_id)->signature()) {
+      : JNI_ArgumentPusher(Method::resolve_jmethod_id(method_id)->signature()) {
     set_ap(rap);
   }
 
@@ -1318,7 +1318,7 @@
 
 
 static void jni_invoke_static(JNIEnv *env, JavaValue* result, jobject receiver, JNICallType call_type, jmethodID method_id, JNI_ArgumentPusher *args, TRAPS) {
-  methodHandle method(THREAD, JNIHandles::resolve_jmethod_id(method_id));
+  methodHandle method(THREAD, Method::resolve_jmethod_id(method_id));
 
   // Create object to hold arguments for the JavaCall, and associate it with
   // the jni parser
@@ -1352,11 +1352,11 @@
   Handle h_recv(THREAD, recv);
 
   int number_of_parameters;
-  methodOop selected_method;
+  Method* selected_method;
   {
-    methodOop m = JNIHandles::resolve_jmethod_id(method_id);
+    Method* m = Method::resolve_jmethod_id(method_id);
     number_of_parameters = m->size_of_parameters();
-    klassOop holder = m->method_holder();
+    Klass* holder = m->method_holder();
     if (!(Klass::cast(holder))->is_interface()) {
       // non-interface call -- for that little speed boost, don't handlize
       debug_only(No_Safepoint_Verifier nosafepoint;)
@@ -1364,11 +1364,11 @@
         // jni_GetMethodID makes sure class is linked and initialized
         // so m should have a valid vtable index.
         int vtbl_index = m->vtable_index();
-        if (vtbl_index != methodOopDesc::nonvirtual_vtable_index) {
-          klassOop k = h_recv->klass();
+        if (vtbl_index != Method::nonvirtual_vtable_index) {
+          Klass* k = h_recv->klass();
           // k might be an arrayKlassOop but all vtables start at
           // the same place. The cast is to avoid virtual call and assertion.
-          instanceKlass *ik = (instanceKlass*)k->klass_part();
+          InstanceKlass *ik = (InstanceKlass*)k;
           selected_method = ik->method_at_vtable(vtbl_index);
         } else {
           // final method
@@ -1388,8 +1388,8 @@
         m->set_cached_itable_index(itbl_index);
         // the above may have grabbed a lock, 'm' and anything non-handlized can't be used again
       }
-      klassOop k = h_recv->klass();
-      selected_method = instanceKlass::cast(k)->method_at_itable(h_holder(), itbl_index, CHECK);
+      Klass* k = h_recv->klass();
+      selected_method = InstanceKlass::cast(k)->method_at_itable(h_holder(), itbl_index, CHECK);
     }
   }
 
@@ -1421,10 +1421,10 @@
 
 
 static instanceOop alloc_object(jclass clazz, TRAPS) {
-  KlassHandle k(THREAD, java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz)));
+  KlassHandle k(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
   Klass::cast(k())->check_valid_for_instantiation(false, CHECK_NULL);
-  instanceKlass::cast(k())->initialize(CHECK_NULL);
-  instanceOop ih = instanceKlass::cast(k())->allocate_instance(THREAD);
+  InstanceKlass::cast(k())->initialize(CHECK_NULL);
+  instanceOop ih = InstanceKlass::cast(k())->allocate_instance(THREAD);
   return ih;
 }
 
@@ -1542,7 +1542,7 @@
   HOTSPOT_JNI_GETOBJECTCLASS_ENTRY(
                                    env, obj);
 #endif /* USDT2 */
-  klassOop k = JNIHandles::resolve_non_null(obj)->klass();
+  Klass* k = JNIHandles::resolve_non_null(obj)->klass();
   jclass ret =
     (jclass) JNIHandles::make_local(env, Klass::cast(k)->java_mirror());
 #ifndef USDT2
@@ -1565,7 +1565,7 @@
   jboolean ret = JNI_TRUE;
   if (obj != NULL) {
     ret = JNI_FALSE;
-    klassOop k = java_lang_Class::as_klassOop(
+    Klass* k = java_lang_Class::as_Klass(
       JNIHandles::resolve_non_null(clazz));
     if (k != NULL) {
       ret = JNIHandles::resolve_non_null(obj)->is_a(k) ? JNI_TRUE : JNI_FALSE;
@@ -1605,18 +1605,18 @@
   }
 
   KlassHandle klass(THREAD,
-               java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz)));
+               java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
 
   // Make sure class is linked and initialized before handing id's out to
-  // methodOops.
+  // Method*s.
   Klass::cast(klass())->initialize(CHECK_NULL);
 
-  methodOop m;
+  Method* m;
   if (name == vmSymbols::object_initializer_name() ||
       name == vmSymbols::class_initializer_name()) {
     // Never search superclasses for constructors
     if (klass->oop_is_instance()) {
-      m = instanceKlass::cast(klass())->find_method(name, signature);
+      m = InstanceKlass::cast(klass())->find_method(name, signature);
     } else {
       m = NULL;
     }
@@ -1624,7 +1624,7 @@
     m = klass->lookup_method(name, signature);
     // Look up interfaces
     if (m == NULL && klass->oop_is_instance()) {
-      m = instanceKlass::cast(klass())->lookup_method_in_all_interfaces(name,
+      m = InstanceKlass::cast(klass())->lookup_method_in_all_interfaces(name,
                                                                    signature);
     }
   }
@@ -2424,7 +2424,7 @@
   JavaValue jvalue(Tag); \
   JNI_ArgumentPusherVaArg ap(methodID, args); \
   /* Make sure class is initialized before trying to invoke its method */ \
-  KlassHandle k(THREAD, java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls))); \
+  KlassHandle k(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(cls))); \
   Klass::cast(k())->initialize(CHECK_0); \
   jni_invoke_static(env, &jvalue, NULL, JNI_STATIC, methodID, &ap, CHECK_0); \
   va_end(args); \
@@ -2608,13 +2608,13 @@
     THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name);
   }
   KlassHandle k(THREAD,
-                java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz)));
+                java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
   // Make sure class is initialized before handing id's out to fields
   Klass::cast(k())->initialize(CHECK_NULL);
 
   fieldDescriptor fd;
   if (!Klass::cast(k())->oop_is_instance() ||
-      !instanceKlass::cast(k())->find_field(fieldname, signame, false, &fd)) {
+      !InstanceKlass::cast(k())->find_field(fieldname, signame, false, &fd)) {
     THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name);
   }
 
@@ -2634,7 +2634,7 @@
                                    env, obj, (uintptr_t) fieldID);
 #endif /* USDT2 */
   oop o = JNIHandles::resolve_non_null(obj);
-  klassOop k = o->klass();
+  Klass* k = o->klass();
   int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);
   // Keep JVMTI addition small and only check enabled flag here.
   // jni_GetField_probe() assumes that is okay to create handles.
@@ -2651,8 +2651,8 @@
 
     if (ret != NULL &&
         offset == java_lang_ref_Reference::referent_offset &&
-        instanceKlass::cast(k)->reference_type() != REF_NONE) {
-      assert(instanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
+        InstanceKlass::cast(k)->reference_type() != REF_NONE) {
+      assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
       needs_barrier = true;
     }
 
@@ -2685,7 +2685,7 @@
   DT_RETURN_MARK_FOR(Result, Get##Result##Field, Return, (const Return&)ret);\
 \
   oop o = JNIHandles::resolve_non_null(obj); \
-  klassOop k = o->klass(); \
+  Klass* k = o->klass(); \
   int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);  \
   /* Keep JVMTI addition small and only check enabled flag here.       */ \
   /* jni_GetField_probe_nh() assumes that is not okay to create handles */ \
@@ -2722,7 +2722,7 @@
   DT_RETURN_MARK_FOR(Result, Get##Result##Field, Return, (const Return&)ret);\
 \
   oop o = JNIHandles::resolve_non_null(obj); \
-  klassOop k = o->klass(); \
+  Klass* k = o->klass(); \
   int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);  \
   /* Keep JVMTI addition small and only check enabled flag here.       */ \
   /* jni_GetField_probe_nh() assumes that is not okay to create handles */ \
@@ -2795,7 +2795,7 @@
                                    env, obj, (uintptr_t) fieldID, value);
 #endif /* USDT2 */
   oop o = JNIHandles::resolve_non_null(obj);
-  klassOop k = o->klass();
+  Klass* k = o->klass();
   int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);
   // Keep JVMTI addition small and only check enabled flag here.
   // jni_SetField_probe_nh() assumes that is not okay to create handles
@@ -2826,7 +2826,7 @@
     ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \
 \
   oop o = JNIHandles::resolve_non_null(obj); \
-  klassOop k = o->klass(); \
+  Klass* k = o->klass(); \
   int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);  \
   /* Keep JVMTI addition small and only check enabled flag here.       */ \
   /* jni_SetField_probe_nh() assumes that is not okay to create handles */ \
@@ -2860,7 +2860,7 @@
   EntryProbe; \
 \
   oop o = JNIHandles::resolve_non_null(obj); \
-  klassOop k = o->klass(); \
+  Klass* k = o->klass(); \
   int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);  \
   /* Keep JVMTI addition small and only check enabled flag here.       */ \
   /* jni_SetField_probe_nh() assumes that is not okay to create handles */ \
@@ -2922,19 +2922,19 @@
 
   fieldDescriptor fd;
   bool found = false;
-  klassOop k = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls));
+  Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(cls));
 
   assert(jfieldIDWorkaround::is_static_jfieldID(fieldID) == (isStatic != 0), "invalid fieldID");
 
   if (isStatic) {
-    // Static field. The fieldID a JNIid specifying the field holder and the offset within the klassOop.
+    // Static field. The fieldID a JNIid specifying the field holder and the offset within the Klass*.
     JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID);
     assert(id->is_static_field_id(), "invalid static field id");
     found = id->find_local_field(&fd);
   } else {
     // Non-static field. The fieldID is really the offset of the field within the instanceOop.
     int offset = jfieldIDWorkaround::from_instance_jfieldID(k, fieldID);
-    found = instanceKlass::cast(k)->find_field_from_offset(offset, false, &fd);
+    found = InstanceKlass::cast(k)->find_field_from_offset(offset, false, &fd);
   }
   assert(found, "bad fieldID passed into jni_ToReflectedField");
   oop reflected = Reflection::new_field(&fd, UseNewReflection, CHECK_NULL);
@@ -2974,18 +2974,18 @@
     THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name);
   }
   KlassHandle k(THREAD,
-                java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz)));
+                java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
   // Make sure class is initialized before handing id's out to static fields
   Klass::cast(k())->initialize(CHECK_NULL);
 
   fieldDescriptor fd;
   if (!Klass::cast(k())->oop_is_instance() ||
-      !instanceKlass::cast(k())->find_field(fieldname, signame, true, &fd)) {
+      !InstanceKlass::cast(k())->find_field(fieldname, signame, true, &fd)) {
     THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name);
   }
 
-  // A jfieldID for a static field is a JNIid specifying the field holder and the offset within the klassOop
-  JNIid* id = instanceKlass::cast(fd.field_holder())->jni_id_for(fd.offset());
+  // A jfieldID for a static field is a JNIid specifying the field holder and the offset within the Klass*
+  JNIid* id = InstanceKlass::cast(fd.field_holder())->jni_id_for(fd.offset());
   debug_only(id->set_is_static_field_id();)
 
   debug_only(id->verify(fd.field_holder()));
@@ -3004,7 +3004,7 @@
                                          env, clazz, (uintptr_t) fieldID);
 #endif /* USDT2 */
 #ifndef JNICHECK_KERNEL
-  DEBUG_ONLY(klassOop param_k = jniCheck::validate_class(thread, clazz);)
+  DEBUG_ONLY(Klass* param_k = jniCheck::validate_class(thread, clazz);)
 #endif // JNICHECK_KERNEL
   JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID);
   assert(id->is_static_field_id(), "invalid static field id");
@@ -3439,8 +3439,8 @@
 #endif /* USDT2 */
   jobjectArray ret = NULL;
   DT_RETURN_MARK(NewObjectArray, jobjectArray, (const jobjectArray&)ret);
-  KlassHandle ek(THREAD, java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(elementClass)));
-  klassOop ako = Klass::cast(ek())->array_klass(CHECK_NULL);
+  KlassHandle ek(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(elementClass)));
+  Klass* ako = Klass::cast(ek())->array_klass(CHECK_NULL);
   KlassHandle ak = KlassHandle(THREAD, ako);
   objArrayKlass::cast(ak())->initialize(CHECK_NULL);
   objArrayOop result = objArrayKlass::cast(ak())->allocate(length, CHECK_NULL);
@@ -3949,10 +3949,10 @@
 // is not native.  Ask JVM TI what prefixes have been specified.  Then check
 // to see if the native method is now wrapped with the prefixes.  See the
 // SetNativeMethodPrefix(es) functions in the JVM TI Spec for details.
-static methodOop find_prefixed_native(KlassHandle k,
+static Method* find_prefixed_native(KlassHandle k,
                                       Symbol* name, Symbol* signature, TRAPS) {
   ResourceMark rm(THREAD);
-  methodOop method;
+  Method* method;
   int name_len = name->utf8_length();
   char* name_str = name->as_utf8();
   int prefix_count;
@@ -3986,12 +3986,12 @@
 }
 
 static bool register_native(KlassHandle k, Symbol* name, Symbol* signature, address entry, TRAPS) {
-  methodOop method = Klass::cast(k())->lookup_method(name, signature);
+  Method* method = Klass::cast(k())->lookup_method(name, signature);
   if (method == NULL) {
     ResourceMark rm;
     stringStream st;
     st.print("Method %s name or signature does not match",
-             methodOopDesc::name_and_sig_as_C_string(Klass::cast(k()), name, signature));
+             Method::name_and_sig_as_C_string(Klass::cast(k()), name, signature));
     THROW_MSG_(vmSymbols::java_lang_NoSuchMethodError(), st.as_string(), false);
   }
   if (!method->is_native()) {
@@ -4001,14 +4001,14 @@
       ResourceMark rm;
       stringStream st;
       st.print("Method %s is not declared as native",
-               methodOopDesc::name_and_sig_as_C_string(Klass::cast(k()), name, signature));
+               Method::name_and_sig_as_C_string(Klass::cast(k()), name, signature));
       THROW_MSG_(vmSymbols::java_lang_NoSuchMethodError(), st.as_string(), false);
     }
   }
 
   if (entry != NULL) {
     method->set_native_function(entry,
-      methodOopDesc::native_bind_event_is_interesting);
+      Method::native_bind_event_is_interesting);
   } else {
     method->clear_native_function();
   }
@@ -4041,7 +4041,7 @@
   jint ret = 0;
   DT_RETURN_MARK(RegisterNatives, jint, (const jint&)ret);
 
-  KlassHandle h_k(thread, java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz)));
+  KlassHandle h_k(thread, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
 
   for (int index = 0; index < nMethods; index++) {
     const char* meth_name = methods[index].name;
@@ -4081,11 +4081,11 @@
  HOTSPOT_JNI_UNREGISTERNATIVES_ENTRY(
                                      env, clazz);
 #endif /* USDT2 */
-  klassOop k   = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz));
+  Klass* k   = java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz));
   //%note jni_2
   if (Klass::cast(k)->oop_is_instance()) {
-    for (int index = 0; index < instanceKlass::cast(k)->methods()->length(); index++) {
-      methodOop m = methodOop(instanceKlass::cast(k)->methods()->obj_at(index));
+    for (int index = 0; index < InstanceKlass::cast(k)->methods()->length(); index++) {
+      Method* m = InstanceKlass::cast(k)->methods()->at(index);
       if (m->is_native()) {
         m->clear_native_function();
         m->set_signature_handler(NULL);
@@ -4412,7 +4412,7 @@
   jclass result =  find_class_from_class_loader(env, sym, true, loader, protection_domain, true, CHECK_NULL);
 
   if (TraceClassResolution && result != NULL) {
-    trace_class_resolution(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(result)));
+    trace_class_resolution(java_lang_Class::as_Klass(JNIHandles::resolve_non_null(result)));
   }
   return result;
 }