Wed, 13 Nov 2013 16:24:33 -0800
8025632: Remove all references to MagicLambdaImpl from Hotspot
Summary: MagicLambdaImpl was removed from jdk side, this should be done in vm side too
Reviewed-by: coleenp, hseigel, rdurbin
1.1 --- a/src/share/vm/classfile/systemDictionary.hpp Wed Nov 13 07:31:26 2013 -0800 1.2 +++ b/src/share/vm/classfile/systemDictionary.hpp Wed Nov 13 16:24:33 2013 -0800 1.3 @@ -141,7 +141,6 @@ 1.4 /* NOTE: needed too early in bootstrapping process to have checks based on JDK version */ \ 1.5 /* Universe::is_gte_jdk14x_version() is not set up by this point. */ \ 1.6 /* It's okay if this turns out to be NULL in non-1.4 JDKs. */ \ 1.7 - do_klass(lambda_MagicLambdaImpl_klass, java_lang_invoke_MagicLambdaImpl, Opt ) \ 1.8 do_klass(reflect_MagicAccessorImpl_klass, sun_reflect_MagicAccessorImpl, Opt ) \ 1.9 do_klass(reflect_MethodAccessorImpl_klass, sun_reflect_MethodAccessorImpl, Opt_Only_JDK14NewRef) \ 1.10 do_klass(reflect_ConstructorAccessorImpl_klass, sun_reflect_ConstructorAccessorImpl, Opt_Only_JDK14NewRef) \
2.1 --- a/src/share/vm/classfile/verifier.cpp Wed Nov 13 07:31:26 2013 -0800 2.2 +++ b/src/share/vm/classfile/verifier.cpp Wed Nov 13 16:24:33 2013 -0800 2.3 @@ -188,10 +188,8 @@ 2.4 bool Verifier::is_eligible_for_verification(instanceKlassHandle klass, bool should_verify_class) { 2.5 Symbol* name = klass->name(); 2.6 Klass* refl_magic_klass = SystemDictionary::reflect_MagicAccessorImpl_klass(); 2.7 - Klass* lambda_magic_klass = SystemDictionary::lambda_MagicLambdaImpl_klass(); 2.8 2.9 bool is_reflect = refl_magic_klass != NULL && klass->is_subtype_of(refl_magic_klass); 2.10 - bool is_lambda = lambda_magic_klass != NULL && klass->is_subtype_of(lambda_magic_klass); 2.11 2.12 return (should_verify_for(klass->class_loader(), should_verify_class) && 2.13 // return if the class is a bootstrapping class 2.14 @@ -215,9 +213,7 @@ 2.15 // NOTE: this is called too early in the bootstrapping process to be 2.16 // guarded by Universe::is_gte_jdk14x_version()/UseNewReflection. 2.17 // Also for lambda generated code, gte jdk8 2.18 - (!is_reflect || VerifyReflectionBytecodes) && 2.19 - (!is_lambda || VerifyLambdaBytecodes) 2.20 - ); 2.21 + (!is_reflect || VerifyReflectionBytecodes)); 2.22 } 2.23 2.24 Symbol* Verifier::inference_verify(
3.1 --- a/src/share/vm/classfile/vmSymbols.hpp Wed Nov 13 07:31:26 2013 -0800 3.2 +++ b/src/share/vm/classfile/vmSymbols.hpp Wed Nov 13 16:24:33 2013 -0800 3.3 @@ -273,7 +273,6 @@ 3.4 template(java_lang_invoke_Stable_signature, "Ljava/lang/invoke/Stable;") \ 3.5 template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \ 3.6 template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \ 3.7 - template(java_lang_invoke_MagicLambdaImpl, "java/lang/invoke/MagicLambdaImpl") \ 3.8 /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \ 3.9 template(findMethodHandleType_name, "findMethodHandleType") \ 3.10 template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \
4.1 --- a/src/share/vm/runtime/globals.hpp Wed Nov 13 07:31:26 2013 -0800 4.2 +++ b/src/share/vm/runtime/globals.hpp Wed Nov 13 16:24:33 2013 -0800 4.3 @@ -3622,9 +3622,6 @@ 4.4 "Temporary flag for transition to AbstractMethodError wrapped " \ 4.5 "in InvocationTargetException. See 6531596") \ 4.6 \ 4.7 - develop(bool, VerifyLambdaBytecodes, false, \ 4.8 - "Force verification of jdk 8 lambda metafactory bytecodes") \ 4.9 - \ 4.10 develop(intx, FastSuperclassLimit, 8, \ 4.11 "Depth of hardwired instanceof accelerator array") \ 4.12 \
5.1 --- a/src/share/vm/runtime/reflection.cpp Wed Nov 13 07:31:26 2013 -0800 5.2 +++ b/src/share/vm/runtime/reflection.cpp Wed Nov 13 16:24:33 2013 -0800 5.3 @@ -470,12 +470,6 @@ 5.4 return true; 5.5 } 5.6 5.7 - // Also allow all accesses from 5.8 - // java/lang/invoke/MagicLambdaImpl subclasses to succeed trivially. 5.9 - if (current_class->is_subclass_of(SystemDictionary::lambda_MagicLambdaImpl_klass())) { 5.10 - return true; 5.11 - } 5.12 - 5.13 return can_relax_access_check_for(current_class, new_class, classloader_only); 5.14 } 5.15 5.16 @@ -570,12 +564,6 @@ 5.17 return true; 5.18 } 5.19 5.20 - // Also allow all accesses from 5.21 - // java/lang/invoke/MagicLambdaImpl subclasses to succeed trivially. 5.22 - if (current_class->is_subclass_of(SystemDictionary::lambda_MagicLambdaImpl_klass())) { 5.23 - return true; 5.24 - } 5.25 - 5.26 return can_relax_access_check_for( 5.27 current_class, field_class, classloader_only); 5.28 }
6.1 --- a/test/compiler/jsr292/ConcurrentClassLoadingTest.java Wed Nov 13 07:31:26 2013 -0800 6.2 +++ b/test/compiler/jsr292/ConcurrentClassLoadingTest.java Wed Nov 13 16:24:33 2013 -0800 6.3 @@ -172,7 +172,6 @@ 6.4 "java.lang.invoke.LambdaConversionException", 6.5 "java.lang.invoke.LambdaForm", 6.6 "java.lang.invoke.LambdaMetafactory", 6.7 - "java.lang.invoke.MagicLambdaImpl", 6.8 "java.lang.invoke.MemberName", 6.9 "java.lang.invoke.MethodHandle", 6.10 "java.lang.invoke.MethodHandleImpl",