143 inline static void set_can_walk_any_space(bool on) {
144 JVMTI_ONLY(_can_walk_any_space = (on != 0);)
145 }
146
147 enum {
148 JVMTI_VERSION_MASK = 0x70000000,
149 JVMTI_VERSION_VALUE = 0x30000000,
150 JVMDI_VERSION_VALUE = 0x20000000
151 };
152
153 static void post_field_modification(JavaThread *thread, Method* method, address location,
154 Klass* field_klass, Handle object, jfieldID field,
155 char sig_type, jvalue *value);
156
157
158 // posts a DynamicCodeGenerated event (internal/private implementation).
159 // The public post_dynamic_code_generated* functions make use of the
160 // internal implementation. Also called from JvmtiDeferredEvent::post()
161 static void post_dynamic_code_generated_internal(const char *name, const void *code_begin, const void *code_end) NOT_JVMTI_RETURN;
162
163 private:
164
165 // GenerateEvents support to allow posting of CompiledMethodLoad and
166 // DynamicCodeGenerated events for a given environment.
167 friend class JvmtiCodeBlobEvents;
168
169 static void post_compiled_method_load(JvmtiEnv* env, nmethod *nm) NOT_JVMTI_RETURN;
170 static void post_dynamic_code_generated(JvmtiEnv* env, const char *name, const void *code_begin,
171 const void *code_end) NOT_JVMTI_RETURN;
172
173 // This flag indicates whether RedefineClasses() has ever redefined
174 // one or more classes during the lifetime of the VM. The flag should
175 // only be set by the friend class and can be queried by other sub
176 // systems as needed to relax invariant checks.
177 static uint64_t _redefinition_count;
178 friend class VM_RedefineClasses;
179 inline static void increment_redefinition_count() {
180 JVMTI_ONLY(_redefinition_count++;)
181 }
182 // Flag to indicate if the compiler has recorded all dependencies. When the
|
143 inline static void set_can_walk_any_space(bool on) {
144 JVMTI_ONLY(_can_walk_any_space = (on != 0);)
145 }
146
147 enum {
148 JVMTI_VERSION_MASK = 0x70000000,
149 JVMTI_VERSION_VALUE = 0x30000000,
150 JVMDI_VERSION_VALUE = 0x20000000
151 };
152
153 static void post_field_modification(JavaThread *thread, Method* method, address location,
154 Klass* field_klass, Handle object, jfieldID field,
155 char sig_type, jvalue *value);
156
157
158 // posts a DynamicCodeGenerated event (internal/private implementation).
159 // The public post_dynamic_code_generated* functions make use of the
160 // internal implementation. Also called from JvmtiDeferredEvent::post()
161 static void post_dynamic_code_generated_internal(const char *name, const void *code_begin, const void *code_end) NOT_JVMTI_RETURN;
162
163 static void post_class_unload_internal(const char *name) NOT_JVMTI_RETURN;
164 private:
165
166 // GenerateEvents support to allow posting of CompiledMethodLoad and
167 // DynamicCodeGenerated events for a given environment.
168 friend class JvmtiCodeBlobEvents;
169
170 static void post_compiled_method_load(JvmtiEnv* env, nmethod *nm) NOT_JVMTI_RETURN;
171 static void post_dynamic_code_generated(JvmtiEnv* env, const char *name, const void *code_begin,
172 const void *code_end) NOT_JVMTI_RETURN;
173
174 // This flag indicates whether RedefineClasses() has ever redefined
175 // one or more classes during the lifetime of the VM. The flag should
176 // only be set by the friend class and can be queried by other sub
177 // systems as needed to relax invariant checks.
178 static uint64_t _redefinition_count;
179 friend class VM_RedefineClasses;
180 inline static void increment_redefinition_count() {
181 JVMTI_ONLY(_redefinition_count++;)
182 }
183 // Flag to indicate if the compiler has recorded all dependencies. When the
|