hotspot/src/share/vm/classfile/classFileParser.cpp
changeset 19770 7cb9f982ea81
parent 19681 1b35da7b1d85
child 20017 81eba62e9048
child 19957 04a38bb9ba15
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp	Mon Sep 09 19:53:28 2013 +0200
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp	Tue Sep 10 14:51:48 2013 -0700
@@ -1774,6 +1774,10 @@
     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):
+    if (_location != _in_field)   break;  // only allow for fields
+    if (!privileged)              break;  // only allow in privileged code
+    return _field_Stable;
   case vmSymbols::VM_SYMBOL_ENUM_NAME(sun_misc_Contended_signature):
     if (_location != _in_field && _location != _in_class)          break;  // only allow for fields and classes
     if (!EnableContended || (RestrictContended && !privileged))    break;  // honor privileges
@@ -1786,6 +1790,8 @@
 void ClassFileParser::FieldAnnotationCollector::apply_to(FieldInfo* f) {
   if (is_contended())
     f->set_contended_group(contended_group());
+  if (is_stable())
+    f->set_stable(true);
 }
 
 ClassFileParser::FieldAnnotationCollector::~FieldAnnotationCollector() {