equal
deleted
inserted
replaced
88 // into the code installation step. |
88 // into the code installation step. |
89 class JVMCICompileState : public ResourceObj { |
89 class JVMCICompileState : public ResourceObj { |
90 friend class JVMCIVMStructs; |
90 friend class JVMCIVMStructs; |
91 private: |
91 private: |
92 CompileTask* _task; |
92 CompileTask* _task; |
93 int _system_dictionary_modification_counter; |
|
94 |
93 |
95 // Cache JVMTI state. Defined as bytes so that reading them from Java |
94 // Cache JVMTI state. Defined as bytes so that reading them from Java |
96 // via Unsafe is well defined (the C++ type for bool is implementation |
95 // via Unsafe is well defined (the C++ type for bool is implementation |
97 // defined and may not be the same as a Java boolean). |
96 // defined and may not be the same as a Java boolean). |
|
97 uint64_t _jvmti_redefinition_count; |
98 jbyte _jvmti_can_hotswap_or_post_breakpoint; |
98 jbyte _jvmti_can_hotswap_or_post_breakpoint; |
99 jbyte _jvmti_can_access_local_variables; |
99 jbyte _jvmti_can_access_local_variables; |
100 jbyte _jvmti_can_post_on_exceptions; |
100 jbyte _jvmti_can_post_on_exceptions; |
101 jbyte _jvmti_can_pop_frame; |
101 jbyte _jvmti_can_pop_frame; |
102 |
102 |
107 // Specifies if _failure_reason is on the C heap. If so, it is allocated |
107 // Specifies if _failure_reason is on the C heap. If so, it is allocated |
108 // with the mtJVMCI NMT flag. |
108 // with the mtJVMCI NMT flag. |
109 bool _failure_reason_on_C_heap; |
109 bool _failure_reason_on_C_heap; |
110 |
110 |
111 public: |
111 public: |
112 JVMCICompileState(CompileTask* task, int system_dictionary_modification_counter); |
112 JVMCICompileState(CompileTask* task); |
113 |
113 |
114 CompileTask* task() { return _task; } |
114 CompileTask* task() { return _task; } |
115 |
115 |
116 int system_dictionary_modification_counter() { return _system_dictionary_modification_counter; } |
|
117 bool jvmti_state_changed() const; |
116 bool jvmti_state_changed() const; |
|
117 uint64_t jvmti_redefinition_count() const { return _jvmti_redefinition_count; } |
118 bool jvmti_can_hotswap_or_post_breakpoint() const { return _jvmti_can_hotswap_or_post_breakpoint != 0; } |
118 bool jvmti_can_hotswap_or_post_breakpoint() const { return _jvmti_can_hotswap_or_post_breakpoint != 0; } |
119 bool jvmti_can_access_local_variables() const { return _jvmti_can_access_local_variables != 0; } |
119 bool jvmti_can_access_local_variables() const { return _jvmti_can_access_local_variables != 0; } |
120 bool jvmti_can_post_on_exceptions() const { return _jvmti_can_post_on_exceptions != 0; } |
120 bool jvmti_can_post_on_exceptions() const { return _jvmti_can_post_on_exceptions != 0; } |
121 bool jvmti_can_pop_frame() const { return _jvmti_can_pop_frame != 0; } |
121 bool jvmti_can_pop_frame() const { return _jvmti_can_pop_frame != 0; } |
122 |
122 |