src/share/vm/prims/methodHandles.cpp

changeset 4278
070d523b96a7
parent 4251
18fb7da42534
child 4354
5c0931d15474
     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  

mercurial