< prev index next >

src/hotspot/share/classfile/javaClasses.cpp

Print this page




4408 
4409 #if INCLUDE_CDS
4410 void java_nio_Buffer::serialize(SerializeClosure* f) {
4411   BUFFER_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4412 }
4413 #endif
4414 
4415 #define AOS_FIELDS_DO(macro) \
4416   macro(_owner_offset, k, "exclusiveOwnerThread", thread_signature, false)
4417 
4418 void java_util_concurrent_locks_AbstractOwnableSynchronizer::compute_offsets() {
4419   InstanceKlass* k = SystemDictionary::java_util_concurrent_locks_AbstractOwnableSynchronizer_klass();
4420   AOS_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4421 }
4422 
4423 oop java_util_concurrent_locks_AbstractOwnableSynchronizer::get_owner_threadObj(oop obj) {
4424   assert(_owner_offset != 0, "Must be initialized");
4425   return obj->obj_field(_owner_offset);
4426 }
4427 






4428 static int member_offset(int hardcoded_offset) {
4429   return (hardcoded_offset * heapOopSize) + instanceOopDesc::base_offset_in_bytes();
4430 }
4431 
4432 // Compute hard-coded offsets
4433 // Invoked before SystemDictionary::initialize, so pre-loaded classes
4434 // are not available to determine the offset_of_static_fields.
4435 void JavaClasses::compute_hard_coded_offsets() {
4436 
4437   // java_lang_boxing_object
4438   java_lang_boxing_object::value_offset      = member_offset(java_lang_boxing_object::hc_value_offset);
4439   java_lang_boxing_object::long_value_offset = align_up(member_offset(java_lang_boxing_object::hc_value_offset), BytesPerLong);
4440 
4441   // java_lang_ref_Reference
4442   java_lang_ref_Reference::referent_offset    = member_offset(java_lang_ref_Reference::hc_referent_offset);
4443   java_lang_ref_Reference::queue_offset       = member_offset(java_lang_ref_Reference::hc_queue_offset);
4444   java_lang_ref_Reference::next_offset        = member_offset(java_lang_ref_Reference::hc_next_offset);
4445   java_lang_ref_Reference::discovered_offset  = member_offset(java_lang_ref_Reference::hc_discovered_offset);
4446 }
4447 




4408 
4409 #if INCLUDE_CDS
4410 void java_nio_Buffer::serialize(SerializeClosure* f) {
4411   BUFFER_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4412 }
4413 #endif
4414 
4415 #define AOS_FIELDS_DO(macro) \
4416   macro(_owner_offset, k, "exclusiveOwnerThread", thread_signature, false)
4417 
4418 void java_util_concurrent_locks_AbstractOwnableSynchronizer::compute_offsets() {
4419   InstanceKlass* k = SystemDictionary::java_util_concurrent_locks_AbstractOwnableSynchronizer_klass();
4420   AOS_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4421 }
4422 
4423 oop java_util_concurrent_locks_AbstractOwnableSynchronizer::get_owner_threadObj(oop obj) {
4424   assert(_owner_offset != 0, "Must be initialized");
4425   return obj->obj_field(_owner_offset);
4426 }
4427 
4428 #if INCLUDE_CDS 
4429 void java_util_concurrent_locks_AbstractOwnableSynchronizer::serialize(SerializeClosure* f) { 
4430   AOS_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4431 } 
4432 #endif
4433 
4434 static int member_offset(int hardcoded_offset) {
4435   return (hardcoded_offset * heapOopSize) + instanceOopDesc::base_offset_in_bytes();
4436 }
4437 
4438 // Compute hard-coded offsets
4439 // Invoked before SystemDictionary::initialize, so pre-loaded classes
4440 // are not available to determine the offset_of_static_fields.
4441 void JavaClasses::compute_hard_coded_offsets() {
4442 
4443   // java_lang_boxing_object
4444   java_lang_boxing_object::value_offset      = member_offset(java_lang_boxing_object::hc_value_offset);
4445   java_lang_boxing_object::long_value_offset = align_up(member_offset(java_lang_boxing_object::hc_value_offset), BytesPerLong);
4446 
4447   // java_lang_ref_Reference
4448   java_lang_ref_Reference::referent_offset    = member_offset(java_lang_ref_Reference::hc_referent_offset);
4449   java_lang_ref_Reference::queue_offset       = member_offset(java_lang_ref_Reference::hc_queue_offset);
4450   java_lang_ref_Reference::next_offset        = member_offset(java_lang_ref_Reference::hc_next_offset);
4451   java_lang_ref_Reference::discovered_offset  = member_offset(java_lang_ref_Reference::hc_discovered_offset);
4452 }
4453 


< prev index next >