equal
deleted
inserted
replaced
771 // Get the method's name and signature. |
771 // Get the method's name and signature. |
772 Symbol* name_sym = cpool->name_ref_at(index); |
772 Symbol* name_sym = cpool->name_ref_at(index); |
773 Symbol* sig_sym = cpool->signature_ref_at(index); |
773 Symbol* sig_sym = cpool->signature_ref_at(index); |
774 |
774 |
775 if (cpool->has_preresolution() |
775 if (cpool->has_preresolution() |
776 || (holder == ciEnv::MethodHandle_klass() && |
776 || ((holder == ciEnv::MethodHandle_klass() || holder == ciEnv::VarHandle_klass()) && |
777 MethodHandles::is_signature_polymorphic_name(holder->get_Klass(), name_sym))) { |
777 MethodHandles::is_signature_polymorphic_name(holder->get_Klass(), name_sym))) { |
778 // Short-circuit lookups for JSR 292-related call sites. |
778 // Short-circuit lookups for JSR 292-related call sites. |
779 // That is, do not rely only on name-based lookups, because they may fail |
779 // That is, do not rely only on name-based lookups, because they may fail |
780 // if the names are not resolvable in the boot class loader (7056328). |
780 // if the names are not resolvable in the boot class loader (7056328). |
781 switch (bc) { |
781 switch (bc) { |