Mercurial > hg > truffle
diff src/share/vm/classfile/classFileParser.cpp @ 17475:6795fcebbf42
Merge
author | chegar |
---|---|
date | Mon, 21 Oct 2013 14:08:09 +0100 |
parents | 6fa574bfd32a 1a93f2c5945a |
children | 0611ce949aaa |
line wrap: on
line diff
--- a/src/share/vm/classfile/classFileParser.cpp Thu Oct 03 19:13:12 2013 +0100 +++ b/src/share/vm/classfile/classFileParser.cpp Mon Oct 21 14:08:09 2013 +0100 @@ -1787,7 +1787,7 @@ if (_location != _in_method) break; // only allow for methods if (!privileged) break; // only allow in privileged code return _method_LambdaForm_Hidden; - case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_invoke_Stable_signature): + case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_Stable_signature): if (_location != _in_field) break; // only allow for fields if (!privileged) break; // only allow in privileged code return _field_Stable; @@ -2545,7 +2545,9 @@ if (method->is_final()) { *has_final_method = true; } - if (is_interface && !method->is_abstract() && !method->is_static()) { + if (is_interface && !(*has_default_methods) + && !method->is_abstract() && !method->is_static() + && !method->is_private()) { // default method *has_default_methods = true; } @@ -4078,8 +4080,7 @@ // Generate any default methods - default methods are interface methods // that have a default implementation. This is new with Lambda project. - if (has_default_methods && !access_flags.is_interface() && - local_interfaces->length() > 0) { + if (has_default_methods && !access_flags.is_interface() ) { DefaultMethods::generate_default_methods( this_klass(), &all_mirandas, CHECK_(nullHandle)); }