7001363: java/dyn/InvokeDynamic should not be a well-known class in the JVM
Because of the removal of language support, the JDK 7 API for JSR 292 no longer includes a public class named java/dyn/InvokeDynamic. Reviewed-by: jrose, kvn
This commit is contained in:
parent
8006fe8f75
commit
36b4f60585
@ -2010,7 +2010,7 @@ void SystemDictionary::initialize_preloaded_classes(TRAPS) {
|
||||
scan = WKID(meth_group_end+1);
|
||||
}
|
||||
WKID indy_group_start = WK_KLASS_ENUM_NAME(Linkage_klass);
|
||||
WKID indy_group_end = WK_KLASS_ENUM_NAME(InvokeDynamic_klass);
|
||||
WKID indy_group_end = WK_KLASS_ENUM_NAME(CallSite_klass);
|
||||
initialize_wk_klasses_until(indy_group_start, scan, CHECK);
|
||||
if (EnableInvokeDynamic) {
|
||||
initialize_wk_klasses_through(indy_group_end, scan, CHECK);
|
||||
|
@ -156,8 +156,7 @@ class SymbolPropertyTable;
|
||||
template(WrongMethodTypeException_klass, java_dyn_WrongMethodTypeException, Opt) \
|
||||
template(Linkage_klass, java_dyn_Linkage, Opt) \
|
||||
template(CallSite_klass, java_dyn_CallSite, Opt) \
|
||||
template(InvokeDynamic_klass, java_dyn_InvokeDynamic, Opt) \
|
||||
/* Note: MethodHandle must be first, and InvokeDynamic last in group */ \
|
||||
/* Note: MethodHandle must be first, and CallSite last in group */ \
|
||||
\
|
||||
template(StringBuffer_klass, java_lang_StringBuffer, Pre) \
|
||||
template(StringBuilder_klass, java_lang_StringBuilder, Pre) \
|
||||
|
@ -968,16 +968,11 @@ MethodHandleCompiler::make_invoke(methodOop m, vmIntrinsics::ID iid,
|
||||
|
||||
if (tailcall) {
|
||||
// Actually, in order to make these methods more recognizable,
|
||||
// let's put them in holder classes MethodHandle and InvokeDynamic.
|
||||
// That way stack walkers and compiler heuristics can recognize them.
|
||||
_target_klass = (for_invokedynamic()
|
||||
? SystemDictionary::InvokeDynamic_klass()
|
||||
: SystemDictionary::MethodHandle_klass());
|
||||
// let's put them in holder class MethodHandle. That way stack
|
||||
// walkers and compiler heuristics can recognize them.
|
||||
_target_klass = SystemDictionary::MethodHandle_klass();
|
||||
}
|
||||
|
||||
// instanceKlass* ik = instanceKlass::cast(klass);
|
||||
// tty->print_cr("MethodHandleCompiler::make_invoke: %s %s.%s%s", Bytecodes::name(op), ik->external_name(), name->as_C_string(), signature->as_C_string());
|
||||
|
||||
// Inline the method.
|
||||
InvocationCounter* ic = m->invocation_counter();
|
||||
ic->set_carry_flag();
|
||||
|
@ -412,8 +412,7 @@ public:
|
||||
|
||||
// Tests if the given class is a MH adapter holder.
|
||||
static bool klass_is_method_handle_adapter_holder(klassOop klass) {
|
||||
return (klass == SystemDictionary::MethodHandle_klass() ||
|
||||
klass == SystemDictionary::InvokeDynamic_klass());
|
||||
return (klass == SystemDictionary::MethodHandle_klass());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -485,9 +485,8 @@ void MethodHandles::resolve_MemberName(Handle mname, TRAPS) {
|
||||
Handle polymorphic_method_type;
|
||||
bool polymorphic_signature = false;
|
||||
if ((flags & ALL_KINDS) == IS_METHOD &&
|
||||
(defc() == SystemDictionary::InvokeDynamic_klass() ||
|
||||
(defc() == SystemDictionary::MethodHandle_klass() &&
|
||||
methodOopDesc::is_method_handle_invoke_name(name()))))
|
||||
(defc() == SystemDictionary::MethodHandle_klass() &&
|
||||
methodOopDesc::is_method_handle_invoke_name(name())))
|
||||
polymorphic_signature = true;
|
||||
|
||||
// convert the external string or reflective type to an internal signature
|
||||
|
@ -3232,12 +3232,6 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
|
||||
warning("java.lang.ArithmeticException has not been initialized");
|
||||
warning("java.lang.StackOverflowError has not been initialized");
|
||||
}
|
||||
|
||||
if (EnableInvokeDynamic) {
|
||||
// JSR 292: An intialized java.dyn.InvokeDynamic is required in
|
||||
// the compiler.
|
||||
initialize_class(vmSymbolHandles::java_dyn_InvokeDynamic(), CHECK_0);
|
||||
}
|
||||
}
|
||||
|
||||
// See : bugid 4211085.
|
||||
|
Loading…
Reference in New Issue
Block a user