src/share/vm/runtime/fieldDescriptor.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8161987 Cdiff src/share/vm/runtime/fieldDescriptor.hpp

src/share/vm/runtime/fieldDescriptor.hpp

Print this page
rev 8156 : 8157181: Compilers accept modification of final fields outside initializer methods
Summary: Track initialized final field updates; disable constant folding if an update is detected.
Reviewed-by: vlivanov, dnsimon, forax, never, kvn, coleenp

*** 104,113 **** --- 104,114 ---- bool is_synthetic() const { return access_flags().is_synthetic(); } bool is_field_access_watched() const { return access_flags().is_field_access_watched(); } bool is_field_modification_watched() const { return access_flags().is_field_modification_watched(); } + bool has_initialized_final_update() const { return access_flags().has_field_initialized_final_update(); } bool has_generic_signature() const { return access_flags().field_has_generic_signature(); } void set_is_field_access_watched(const bool value) { _access_flags.set_is_field_access_watched(value); update_klass_field_access_flag();
*** 116,125 **** --- 117,131 ---- void set_is_field_modification_watched(const bool value) { _access_flags.set_is_field_modification_watched(value); update_klass_field_access_flag(); } + void set_has_initialized_final_update(const bool value) { + _access_flags.set_has_field_initialized_final_update(value); + update_klass_field_access_flag(); + } + // Initialization void reinitialize(InstanceKlass* ik, int index); // Print void print() { print_on(tty); }
src/share/vm/runtime/fieldDescriptor.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File