equal
deleted
inserted
replaced
340 // Get the method's name and signature. |
340 // Get the method's name and signature. |
341 Symbol* name_sym = cpool->name_ref_at(index); |
341 Symbol* name_sym = cpool->name_ref_at(index); |
342 Symbol* sig_sym = cpool->signature_ref_at(index); |
342 Symbol* sig_sym = cpool->signature_ref_at(index); |
343 |
343 |
344 if (cpool->has_preresolution() |
344 if (cpool->has_preresolution() |
345 || (holder() == SystemDictionary::MethodHandle_klass() && |
345 || ((holder() == SystemDictionary::MethodHandle_klass() || holder() == SystemDictionary::VarHandle_klass()) && |
346 MethodHandles::is_signature_polymorphic_name(holder(), name_sym))) { |
346 MethodHandles::is_signature_polymorphic_name(holder(), name_sym))) { |
347 // Short-circuit lookups for JSR 292-related call sites. |
347 // Short-circuit lookups for JSR 292-related call sites. |
348 // That is, do not rely only on name-based lookups, because they may fail |
348 // That is, do not rely only on name-based lookups, because they may fail |
349 // if the names are not resolvable in the boot class loader (7056328). |
349 // if the names are not resolvable in the boot class loader (7056328). |
350 switch (bc) { |
350 switch (bc) { |