comparison 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
comparison
equal deleted inserted replaced
17474:6fa574bfd32a 17475:6795fcebbf42
1785 return _method_LambdaForm_Compiled; 1785 return _method_LambdaForm_Compiled;
1786 case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_LambdaForm_Hidden_signature): 1786 case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_LambdaForm_Hidden_signature):
1787 if (_location != _in_method) break; // only allow for methods 1787 if (_location != _in_method) break; // only allow for methods
1788 if (!privileged) break; // only allow in privileged code 1788 if (!privileged) break; // only allow in privileged code
1789 return _method_LambdaForm_Hidden; 1789 return _method_LambdaForm_Hidden;
1790 case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_invoke_Stable_signature): 1790 case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_Stable_signature):
1791 if (_location != _in_field) break; // only allow for fields 1791 if (_location != _in_field) break; // only allow for fields
1792 if (!privileged) break; // only allow in privileged code 1792 if (!privileged) break; // only allow in privileged code
1793 return _field_Stable; 1793 return _field_Stable;
1794 case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_misc_Contended_signature): 1794 case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_misc_Contended_signature):
1795 if (_location != _in_field && _location != _in_class) break; // only allow for fields and classes 1795 if (_location != _in_field && _location != _in_class) break; // only allow for fields and classes
2543 CHECK_NULL); 2543 CHECK_NULL);
2544 2544
2545 if (method->is_final()) { 2545 if (method->is_final()) {
2546 *has_final_method = true; 2546 *has_final_method = true;
2547 } 2547 }
2548 if (is_interface && !method->is_abstract() && !method->is_static()) { 2548 if (is_interface && !(*has_default_methods)
2549 && !method->is_abstract() && !method->is_static()
2550 && !method->is_private()) {
2549 // default method 2551 // default method
2550 *has_default_methods = true; 2552 *has_default_methods = true;
2551 } 2553 }
2552 _methods->at_put(index, method()); 2554 _methods->at_put(index, method());
2553 } 2555 }
4076 java_lang_Class::create_mirror(this_klass, protection_domain, CHECK_(nullHandle)); 4078 java_lang_Class::create_mirror(this_klass, protection_domain, CHECK_(nullHandle));
4077 4079
4078 4080
4079 // Generate any default methods - default methods are interface methods 4081 // Generate any default methods - default methods are interface methods
4080 // that have a default implementation. This is new with Lambda project. 4082 // that have a default implementation. This is new with Lambda project.
4081 if (has_default_methods && !access_flags.is_interface() && 4083 if (has_default_methods && !access_flags.is_interface() ) {
4082 local_interfaces->length() > 0) {
4083 DefaultMethods::generate_default_methods( 4084 DefaultMethods::generate_default_methods(
4084 this_klass(), &all_mirandas, CHECK_(nullHandle)); 4085 this_klass(), &all_mirandas, CHECK_(nullHandle));
4085 } 4086 }
4086 4087
4087 // Update the loader_data graph. 4088 // Update the loader_data graph.