comparison src/share/vm/classfile/classFileParser.cpp @ 8870:cd9ad42dfde0

Merge
author bharadwaj
date Fri, 29 Mar 2013 20:52:01 -0700
parents 36376b540a98 16885e702c88
children 9befe2fce567
comparison
equal deleted inserted replaced
8836:d26674db4d91 8870:cd9ad42dfde0
1733 ClassFileParser::AnnotationCollector::ID 1733 ClassFileParser::AnnotationCollector::ID
1734 ClassFileParser::AnnotationCollector::annotation_index(ClassLoaderData* loader_data, 1734 ClassFileParser::AnnotationCollector::annotation_index(ClassLoaderData* loader_data,
1735 Symbol* name) { 1735 Symbol* name) {
1736 vmSymbols::SID sid = vmSymbols::find_sid(name); 1736 vmSymbols::SID sid = vmSymbols::find_sid(name);
1737 // Privileged code can use all annotations. Other code silently drops some. 1737 // Privileged code can use all annotations. Other code silently drops some.
1738 bool privileged = loader_data->is_the_null_class_loader_data() || 1738 const bool privileged = loader_data->is_the_null_class_loader_data() ||
1739 loader_data->is_anonymous(); 1739 loader_data->is_ext_class_loader_data() ||
1740 loader_data->is_anonymous();
1740 switch (sid) { 1741 switch (sid) {
1742 case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_reflect_CallerSensitive_signature):
1743 if (_location != _in_method) break; // only allow for methods
1744 if (!privileged) break; // only allow in privileged code
1745 return _method_CallerSensitive;
1741 case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_ForceInline_signature): 1746 case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_ForceInline_signature):
1742 if (_location != _in_method) break; // only allow for methods 1747 if (_location != _in_method) break; // only allow for methods
1743 if (!privileged) break; // only allow in privileged code 1748 if (!privileged) break; // only allow in privileged code
1744 return _method_ForceInline; 1749 return _method_ForceInline;
1745 case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_DontInline_signature): 1750 case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_DontInline_signature):
1773 MetadataFactory::free_array<u1>(_loader_data, _field_annotations); 1778 MetadataFactory::free_array<u1>(_loader_data, _field_annotations);
1774 MetadataFactory::free_array<u1>(_loader_data, _field_type_annotations); 1779 MetadataFactory::free_array<u1>(_loader_data, _field_type_annotations);
1775 } 1780 }
1776 1781
1777 void ClassFileParser::MethodAnnotationCollector::apply_to(methodHandle m) { 1782 void ClassFileParser::MethodAnnotationCollector::apply_to(methodHandle m) {
1783 if (has_annotation(_method_CallerSensitive))
1784 m->set_caller_sensitive(true);
1778 if (has_annotation(_method_ForceInline)) 1785 if (has_annotation(_method_ForceInline))
1779 m->set_force_inline(true); 1786 m->set_force_inline(true);
1780 if (has_annotation(_method_DontInline)) 1787 if (has_annotation(_method_DontInline))
1781 m->set_dont_inline(true); 1788 m->set_dont_inline(true);
1782 if (has_annotation(_method_LambdaForm_Compiled) && m->intrinsic_id() == vmIntrinsics::_none) 1789 if (has_annotation(_method_LambdaForm_Compiled) && m->intrinsic_id() == vmIntrinsics::_none)