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