--- old/src/share/vm/utilities/accessFlags.hpp 2016-06-15 14:04:37.323506291 +0200 +++ new/src/share/vm/utilities/accessFlags.hpp 2016-06-15 14:04:37.107506284 +0200 @@ -77,11 +77,12 @@ // These bits must not conflict with any other field-related access flags // (e.g., ACC_ENUM). // Note that the class-related ACC_ANNOTATION bit conflicts with these flags. - JVM_ACC_FIELD_ACCESS_WATCHED = 0x00002000, // field access is watched by JVMTI - JVM_ACC_FIELD_MODIFICATION_WATCHED = 0x00008000, // field modification is watched by JVMTI - JVM_ACC_FIELD_INTERNAL = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT - JVM_ACC_FIELD_STABLE = 0x00000020, // @Stable field, same as JVM_ACC_SYNCHRONIZED - JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE = 0x00000800, // field has generic signature + JVM_ACC_FIELD_ACCESS_WATCHED = 0x00002000, // field access is watched by JVMTI + JVM_ACC_FIELD_MODIFICATION_WATCHED = 0x00008000, // field modification is watched by JVMTI + JVM_ACC_FIELD_INTERNAL = 0x00000400, // internal field, same as JVM_ACC_ABSTRACT + JVM_ACC_FIELD_STABLE = 0x00000020, // @Stable field, same as JVM_ACC_SYNCHRONIZED and JVM_ACC_SUPER + JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE = 0x00000100, // (static) final field updated outside (class) initializer, same as JVM_ACC_NATIVE + JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE = 0x00000800, // field has generic signature JVM_ACC_FIELD_INTERNAL_FLAGS = JVM_ACC_FIELD_ACCESS_WATCHED | JVM_ACC_FIELD_MODIFICATION_WATCHED | @@ -154,6 +155,8 @@ bool is_field_access_watched() const { return (_flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; } bool is_field_modification_watched() const { return (_flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; } + bool has_field_initialized_final_update() const + { return (_flags & JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE) != 0; } bool on_stack() const { return (_flags & JVM_ACC_ON_STACK) != 0; } bool is_internal() const { return (_flags & JVM_ACC_FIELD_INTERNAL) != 0; } bool is_stable() const { return (_flags & JVM_ACC_FIELD_STABLE) != 0; } @@ -232,6 +235,15 @@ atomic_clear_bits(JVM_ACC_FIELD_MODIFICATION_WATCHED); } } + + void set_has_field_initialized_final_update(const bool value) { + if (value) { + atomic_set_bits(JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE); + } else { + atomic_clear_bits(JVM_ACC_FIELD_INITIALIZED_FINAL_UPDATE); + } + } + void set_field_has_generic_signature() { atomic_set_bits(JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE);