287 return _jloader;
288 }
289 jobject protection_domain() {
290 return _protection_domain;
291 }
292 jclass class_being_redefined() {
293 return _class_being_redefined;
294 }
295 };
296
297 //////////////////////////////////////////////////////////////////////////////
298
299 int JvmtiExport::_field_access_count = 0;
300 int JvmtiExport::_field_modification_count = 0;
301
302 bool JvmtiExport::_can_access_local_variables = false;
303 bool JvmtiExport::_can_hotswap_or_post_breakpoint = false;
304 bool JvmtiExport::_can_modify_any_class = false;
305 bool JvmtiExport::_can_walk_any_space = false;
306
307 bool JvmtiExport::_has_redefined_a_class = false;
308 bool JvmtiExport::_all_dependencies_are_recorded = false;
309
310 //
311 // field access management
312 //
313
314 // interpreter generator needs the address of the counter
315 address JvmtiExport::get_field_access_count_addr() {
316 // We don't grab a lock because we don't want to
317 // serialize field access between all threads. This means that a
318 // thread on another processor can see the wrong count value and
319 // may either miss making a needed call into post_field_access()
320 // or will make an unneeded call into post_field_access(). We pay
321 // this price to avoid slowing down the VM when we aren't watching
322 // field accesses.
323 // Other access/mutation safe by virtue of being in VM state.
324 return (address)(&_field_access_count);
325 }
326
327 //
|
287 return _jloader;
288 }
289 jobject protection_domain() {
290 return _protection_domain;
291 }
292 jclass class_being_redefined() {
293 return _class_being_redefined;
294 }
295 };
296
297 //////////////////////////////////////////////////////////////////////////////
298
299 int JvmtiExport::_field_access_count = 0;
300 int JvmtiExport::_field_modification_count = 0;
301
302 bool JvmtiExport::_can_access_local_variables = false;
303 bool JvmtiExport::_can_hotswap_or_post_breakpoint = false;
304 bool JvmtiExport::_can_modify_any_class = false;
305 bool JvmtiExport::_can_walk_any_space = false;
306
307 int JvmtiExport::_redefinition_count = 0;
308 bool JvmtiExport::_all_dependencies_are_recorded = false;
309
310 //
311 // field access management
312 //
313
314 // interpreter generator needs the address of the counter
315 address JvmtiExport::get_field_access_count_addr() {
316 // We don't grab a lock because we don't want to
317 // serialize field access between all threads. This means that a
318 // thread on another processor can see the wrong count value and
319 // may either miss making a needed call into post_field_access()
320 // or will make an unneeded call into post_field_access(). We pay
321 // this price to avoid slowing down the VM when we aren't watching
322 // field accesses.
323 // Other access/mutation safe by virtue of being in VM state.
324 return (address)(&_field_access_count);
325 }
326
327 //
|