equal
deleted
inserted
replaced
89 JVMTI_SUPPORT_FLAG(can_post_method_exit) |
89 JVMTI_SUPPORT_FLAG(can_post_method_exit) |
90 JVMTI_SUPPORT_FLAG(can_pop_frame) |
90 JVMTI_SUPPORT_FLAG(can_pop_frame) |
91 JVMTI_SUPPORT_FLAG(can_force_early_return) |
91 JVMTI_SUPPORT_FLAG(can_force_early_return) |
92 |
92 |
93 JVMTI_SUPPORT_FLAG(early_vmstart_recorded) |
93 JVMTI_SUPPORT_FLAG(early_vmstart_recorded) |
|
94 JVMTI_SUPPORT_FLAG(can_get_owned_monitor_info) // includes can_get_owned_monitor_stack_depth_info |
94 |
95 |
95 friend class JvmtiEventControllerPrivate; // should only modify these flags |
96 friend class JvmtiEventControllerPrivate; // should only modify these flags |
96 JVMTI_SUPPORT_FLAG(should_post_single_step) |
97 JVMTI_SUPPORT_FLAG(should_post_single_step) |
97 JVMTI_SUPPORT_FLAG(should_post_field_access) |
98 JVMTI_SUPPORT_FLAG(should_post_field_access) |
98 JVMTI_SUPPORT_FLAG(should_post_field_modification) |
99 JVMTI_SUPPORT_FLAG(should_post_field_modification) |
171 |
172 |
172 // This flag indicates whether RedefineClasses() has ever redefined |
173 // This flag indicates whether RedefineClasses() has ever redefined |
173 // one or more classes during the lifetime of the VM. The flag should |
174 // one or more classes during the lifetime of the VM. The flag should |
174 // only be set by the friend class and can be queried by other sub |
175 // only be set by the friend class and can be queried by other sub |
175 // systems as needed to relax invariant checks. |
176 // systems as needed to relax invariant checks. |
176 static bool _has_redefined_a_class; |
177 static uint64_t _redefinition_count; |
177 friend class VM_RedefineClasses; |
178 friend class VM_RedefineClasses; |
178 inline static void set_has_redefined_a_class() { |
179 inline static void increment_redefinition_count() { |
179 JVMTI_ONLY(_has_redefined_a_class = true;) |
180 JVMTI_ONLY(_redefinition_count++;) |
180 } |
181 } |
181 // Flag to indicate if the compiler has recorded all dependencies. When the |
182 // Flag to indicate if the compiler has recorded all dependencies. When the |
182 // can_redefine_classes capability is enabled in the OnLoad phase then the compiler |
183 // can_redefine_classes capability is enabled in the OnLoad phase then the compiler |
183 // records all dependencies from startup. However if the capability is first |
184 // records all dependencies from startup. However if the capability is first |
184 // enabled some time later then the dependencies recorded by the compiler |
185 // enabled some time later then the dependencies recorded by the compiler |
186 // dependency information is complete or not. |
187 // dependency information is complete or not. |
187 static bool _all_dependencies_are_recorded; |
188 static bool _all_dependencies_are_recorded; |
188 |
189 |
189 public: |
190 public: |
190 inline static bool has_redefined_a_class() { |
191 inline static bool has_redefined_a_class() { |
191 JVMTI_ONLY(return _has_redefined_a_class); |
192 JVMTI_ONLY(return _redefinition_count != 0); |
192 NOT_JVMTI(return false); |
193 NOT_JVMTI(return false); |
|
194 } |
|
195 |
|
196 // Only set in safepoint, so no memory ordering needed. |
|
197 inline static uint64_t redefinition_count() { |
|
198 JVMTI_ONLY(return _redefinition_count); |
|
199 NOT_JVMTI(return 0); |
193 } |
200 } |
194 |
201 |
195 inline static bool all_dependencies_are_recorded() { |
202 inline static bool all_dependencies_are_recorded() { |
196 return _all_dependencies_are_recorded; |
203 return _all_dependencies_are_recorded; |
197 } |
204 } |
386 static void cleanup_thread (JavaThread* thread) NOT_JVMTI_RETURN; |
393 static void cleanup_thread (JavaThread* thread) NOT_JVMTI_RETURN; |
387 static void clear_detected_exception (JavaThread* thread) NOT_JVMTI_RETURN; |
394 static void clear_detected_exception (JavaThread* thread) NOT_JVMTI_RETURN; |
388 |
395 |
389 static void oops_do(OopClosure* f) NOT_JVMTI_RETURN; |
396 static void oops_do(OopClosure* f) NOT_JVMTI_RETURN; |
390 static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN; |
397 static void weak_oops_do(BoolObjectClosure* b, OopClosure* f) NOT_JVMTI_RETURN; |
391 static void gc_epilogue() NOT_JVMTI_RETURN; |
|
392 |
398 |
393 static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN; |
399 static void transition_pending_onload_raw_monitors() NOT_JVMTI_RETURN; |
394 |
400 |
395 #if INCLUDE_SERVICES |
401 #if INCLUDE_SERVICES |
396 // attach support |
402 // attach support |