equal
deleted
inserted
replaced
726 // |
726 // |
727 // Also, we need to delay resolving getstatic and putstatic instructions until the |
727 // Also, we need to delay resolving getstatic and putstatic instructions until the |
728 // class is initialized. This is required so that access to the static |
728 // class is initialized. This is required so that access to the static |
729 // field will call the initialization function every time until the class |
729 // field will call the initialization function every time until the class |
730 // is completely initialized ala. in 2.17.5 in JVM Specification. |
730 // is completely initialized ala. in 2.17.5 in JVM Specification. |
731 InstanceKlass* klass = InstanceKlass::cast(info.field_holder()); |
731 InstanceKlass* klass = info.field_holder(); |
732 bool uninitialized_static = is_static && !klass->is_initialized(); |
732 bool uninitialized_static = is_static && !klass->is_initialized(); |
733 bool has_initialized_final_update = info.field_holder()->major_version() >= 53 && |
733 bool has_initialized_final_update = info.field_holder()->major_version() >= 53 && |
734 info.has_initialized_final_update(); |
734 info.has_initialized_final_update(); |
735 assert(!(has_initialized_final_update && !info.access_flags().is_final()), "Fields with initialized final updates must be final"); |
735 assert(!(has_initialized_final_update && !info.access_flags().is_final()), "Fields with initialized final updates must be final"); |
736 |
736 |