1.1 --- a/src/share/vm/prims/methodHandles.cpp Fri Nov 09 22:22:53 2012 -0800 1.2 +++ b/src/share/vm/prims/methodHandles.cpp Mon Nov 12 16:15:05 2012 -0500 1.3 @@ -138,7 +138,7 @@ 1.4 oop clazz = java_lang_reflect_Method::clazz(target_oop); 1.5 int slot = java_lang_reflect_Method::slot(target_oop); 1.6 Klass* k = java_lang_Class::as_Klass(clazz); 1.7 - if (k != NULL && Klass::cast(k)->oop_is_instance()) { 1.8 + if (k != NULL && k->oop_is_instance()) { 1.9 Method* m = InstanceKlass::cast(k)->method_with_idnum(slot); 1.10 return init_method_MemberName(mname_oop, m, true, k); 1.11 } 1.12 @@ -146,7 +146,7 @@ 1.13 oop clazz = java_lang_reflect_Constructor::clazz(target_oop); 1.14 int slot = java_lang_reflect_Constructor::slot(target_oop); 1.15 Klass* k = java_lang_Class::as_Klass(clazz); 1.16 - if (k != NULL && Klass::cast(k)->oop_is_instance()) { 1.17 + if (k != NULL && k->oop_is_instance()) { 1.18 Method* m = InstanceKlass::cast(k)->method_with_idnum(slot); 1.19 return init_method_MemberName(mname_oop, m, false, k); 1.20 } 1.21 @@ -187,14 +187,14 @@ 1.22 } else if (mods.is_static()) { 1.23 flags |= IS_METHOD | (JVM_REF_invokeStatic << REFERENCE_KIND_SHIFT); 1.24 } else if (receiver_limit != mklass && 1.25 - !Klass::cast(receiver_limit)->is_subtype_of(mklass)) { 1.26 + !receiver_limit->is_subtype_of(mklass)) { 1.27 return NULL; // bad receiver limit 1.28 - } else if (Klass::cast(receiver_limit)->is_interface() && 1.29 - Klass::cast(mklass)->is_interface()) { 1.30 + } else if (receiver_limit->is_interface() && 1.31 + mklass->is_interface()) { 1.32 flags |= IS_METHOD | (JVM_REF_invokeInterface << REFERENCE_KIND_SHIFT); 1.33 receiver_limit = mklass; // ignore passed-in limit; interfaces are interconvertible 1.34 vmindex = klassItable::compute_itable_index(m); 1.35 - } else if (mklass != receiver_limit && Klass::cast(mklass)->is_interface()) { 1.36 + } else if (mklass != receiver_limit && mklass->is_interface()) { 1.37 flags |= IS_METHOD | (JVM_REF_invokeVirtual << REFERENCE_KIND_SHIFT); 1.38 // it is a miranda method, so m->vtable_index is not what we want 1.39 ResourceMark rm; 1.40 @@ -210,7 +210,7 @@ 1.41 java_lang_invoke_MemberName::set_flags(mname_oop, flags); 1.42 java_lang_invoke_MemberName::set_vmtarget(mname_oop, m); 1.43 java_lang_invoke_MemberName::set_vmindex(mname_oop, vmindex); // vtable/itable index 1.44 - java_lang_invoke_MemberName::set_clazz(mname_oop, Klass::cast(receiver_limit)->java_mirror()); 1.45 + java_lang_invoke_MemberName::set_clazz(mname_oop, receiver_limit->java_mirror()); 1.46 // Note: name and type can be lazily computed by resolve_MemberName, 1.47 // if Java code needs them as resolved String and MethodType objects. 1.48 // The clazz must be eagerly stored, because it provides a GC 1.49 @@ -258,7 +258,7 @@ 1.50 java_lang_invoke_MemberName::set_flags(mname_oop, flags); 1.51 java_lang_invoke_MemberName::set_vmtarget(mname_oop, vmtarget); 1.52 java_lang_invoke_MemberName::set_vmindex(mname_oop, vmindex); 1.53 - java_lang_invoke_MemberName::set_clazz(mname_oop, Klass::cast(field_holder)->java_mirror()); 1.54 + java_lang_invoke_MemberName::set_clazz(mname_oop, field_holder->java_mirror()); 1.55 if (name != NULL) 1.56 java_lang_invoke_MemberName::set_name(mname_oop, name); 1.57 if (type != NULL) 1.58 @@ -299,7 +299,7 @@ 1.59 // The following test will fail spuriously during bootstrap of MethodHandle itself: 1.60 // if (klass != SystemDictionary::MethodHandle_klass()) 1.61 // Test the name instead: 1.62 - if (Klass::cast(klass)->name() != vmSymbols::java_lang_invoke_MethodHandle()) 1.63 + if (klass->name() != vmSymbols::java_lang_invoke_MethodHandle()) 1.64 return false; 1.65 Symbol* poly_sig = vmSymbols::object_array_object_signature(); 1.66 Method* m = InstanceKlass::cast(klass)->find_method(name, poly_sig); 1.67 @@ -363,7 +363,7 @@ 1.68 1.69 vmIntrinsics::ID MethodHandles::signature_polymorphic_name_id(Klass* klass, Symbol* name) { 1.70 if (klass != NULL && 1.71 - Klass::cast(klass)->name() == vmSymbols::java_lang_invoke_MethodHandle()) { 1.72 + klass->name() == vmSymbols::java_lang_invoke_MethodHandle()) { 1.73 vmIntrinsics::ID iid = signature_polymorphic_name_id(name); 1.74 if (iid != vmIntrinsics::_none) 1.75 return iid; 1.76 @@ -539,7 +539,7 @@ 1.77 1.78 1.79 static oop object_java_mirror() { 1.80 - return Klass::cast(SystemDictionary::Object_klass())->java_mirror(); 1.81 + return SystemDictionary::Object_klass()->java_mirror(); 1.82 } 1.83 1.84 static oop field_name_or_null(Symbol* s) { 1.85 @@ -560,9 +560,9 @@ 1.86 if (s == vmSymbols::object_signature()) { 1.87 return object_java_mirror(); 1.88 } else if (s == vmSymbols::class_signature()) { 1.89 - return Klass::cast(SystemDictionary::Class_klass())->java_mirror(); 1.90 + return SystemDictionary::Class_klass()->java_mirror(); 1.91 } else if (s == vmSymbols::string_signature()) { 1.92 - return Klass::cast(SystemDictionary::String_klass())->java_mirror(); 1.93 + return SystemDictionary::String_klass()->java_mirror(); 1.94 } 1.95 } 1.96 return NULL; 1.97 @@ -603,8 +603,8 @@ 1.98 { 1.99 Klass* defc_klass = java_lang_Class::as_Klass(defc_oop()); 1.100 if (defc_klass == NULL) return empty; // a primitive; no resolution possible 1.101 - if (!Klass::cast(defc_klass)->oop_is_instance()) { 1.102 - if (!Klass::cast(defc_klass)->oop_is_array()) return empty; 1.103 + if (!defc_klass->oop_is_instance()) { 1.104 + if (!defc_klass->oop_is_array()) return empty; 1.105 defc_klass = SystemDictionary::Object_klass(); 1.106 } 1.107 defc = instanceKlassHandle(THREAD, defc_klass); 1.108 @@ -767,7 +767,7 @@ 1.109 { 1.110 // This is taken from LinkResolver::resolve_field, sans access checks. 1.111 assert(vmtarget->is_klass(), "field vmtarget is Klass*"); 1.112 - if (!Klass::cast((Klass*) vmtarget)->oop_is_instance()) break; 1.113 + if (!((Klass*) vmtarget)->oop_is_instance()) break; 1.114 instanceKlassHandle defc(THREAD, (Klass*) vmtarget); 1.115 DEBUG_ONLY(vmtarget = NULL); // safety 1.116 bool is_static = ((flags & JVM_ACC_STATIC) != 0); 1.117 @@ -805,7 +805,7 @@ 1.118 1.119 // %%% take caller into account! 1.120 1.121 - if (k == NULL || !Klass::cast(k)->oop_is_instance()) return -1; 1.122 + if (k == NULL || !k->oop_is_instance()) return -1; 1.123 1.124 int rfill = 0, rlimit = results->length(), rskip = skip; 1.125 // overflow measurement: 1.126 @@ -1032,7 +1032,7 @@ 1.127 if (!Reflection::verify_class_access(caller, 1.128 reference_klass, 1.129 true)) { 1.130 - THROW_MSG_NULL(vmSymbols::java_lang_InternalError(), Klass::cast(reference_klass)->external_name()); 1.131 + THROW_MSG_NULL(vmSymbols::java_lang_InternalError(), reference_klass->external_name()); 1.132 } 1.133 } 1.134 } 1.135 @@ -1108,7 +1108,7 @@ 1.136 if (vmtarget == NULL) { 1.137 x = NULL; 1.138 } else if (vmtarget->is_klass()) { 1.139 - x = Klass::cast((Klass*) vmtarget)->java_mirror(); 1.140 + x = ((Klass*) vmtarget)->java_mirror(); 1.141 } else if (vmtarget->is_method()) { 1.142 Handle mname2 = MethodHandles::new_MemberName(CHECK_NULL); 1.143 x = MethodHandles::init_method_MemberName(mname2(), (Method*)vmtarget, false, NULL); 1.144 @@ -1237,7 +1237,7 @@ 1.145 if (SystemDictionary::MethodHandle_klass() == NULL) { 1.146 enable_MH = false; 1.147 } else { 1.148 - oop mirror = Klass::cast(SystemDictionary::MethodHandle_klass())->java_mirror(); 1.149 + oop mirror = SystemDictionary::MethodHandle_klass()->java_mirror(); 1.150 MH_class = (jclass) JNIHandles::make_local(env, mirror); 1.151 } 1.152