hotspot/src/share/vm/classfile/classFileParser.cpp
changeset 19770 7cb9f982ea81
parent 19681 1b35da7b1d85
child 20017 81eba62e9048
child 19957 04a38bb9ba15
equal deleted inserted replaced
19768:239cc27c7524 19770:7cb9f982ea81
  1772     return _method_LambdaForm_Compiled;
  1772     return _method_LambdaForm_Compiled;
  1773   case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_LambdaForm_Hidden_signature):
  1773   case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_LambdaForm_Hidden_signature):
  1774     if (_location != _in_method)  break;  // only allow for methods
  1774     if (_location != _in_method)  break;  // only allow for methods
  1775     if (!privileged)              break;  // only allow in privileged code
  1775     if (!privileged)              break;  // only allow in privileged code
  1776     return _method_LambdaForm_Hidden;
  1776     return _method_LambdaForm_Hidden;
       
  1777   case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_invoke_Stable_signature):
       
  1778     if (_location != _in_field)   break;  // only allow for fields
       
  1779     if (!privileged)              break;  // only allow in privileged code
       
  1780     return _field_Stable;
  1777   case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_misc_Contended_signature):
  1781   case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_misc_Contended_signature):
  1778     if (_location != _in_field && _location != _in_class)          break;  // only allow for fields and classes
  1782     if (_location != _in_field && _location != _in_class)          break;  // only allow for fields and classes
  1779     if (!EnableContended || (RestrictContended && !privileged))    break;  // honor privileges
  1783     if (!EnableContended || (RestrictContended && !privileged))    break;  // honor privileges
  1780     return _sun_misc_Contended;
  1784     return _sun_misc_Contended;
  1781   default: break;
  1785   default: break;
  1784 }
  1788 }
  1785 
  1789 
  1786 void ClassFileParser::FieldAnnotationCollector::apply_to(FieldInfo* f) {
  1790 void ClassFileParser::FieldAnnotationCollector::apply_to(FieldInfo* f) {
  1787   if (is_contended())
  1791   if (is_contended())
  1788     f->set_contended_group(contended_group());
  1792     f->set_contended_group(contended_group());
       
  1793   if (is_stable())
       
  1794     f->set_stable(true);
  1789 }
  1795 }
  1790 
  1796 
  1791 ClassFileParser::FieldAnnotationCollector::~FieldAnnotationCollector() {
  1797 ClassFileParser::FieldAnnotationCollector::~FieldAnnotationCollector() {
  1792   // If there's an error deallocate metadata for field annotations
  1798   // If there's an error deallocate metadata for field annotations
  1793   MetadataFactory::free_array<u1>(_loader_data, _field_annotations);
  1799   MetadataFactory::free_array<u1>(_loader_data, _field_annotations);