< prev index next >

src/hotspot/share/classfile/javaClasses.cpp

Print this page




3487 }
3488 
3489 
3490 void java_lang_boxing_object::print(BasicType type, jvalue* value, outputStream* st) {
3491   switch (type) {
3492   case T_BOOLEAN:   st->print("%s", value->z ? "true" : "false");   break;
3493   case T_CHAR:      st->print("%d", value->c);                      break;
3494   case T_BYTE:      st->print("%d", value->b);                      break;
3495   case T_SHORT:     st->print("%d", value->s);                      break;
3496   case T_INT:       st->print("%d", value->i);                      break;
3497   case T_LONG:      st->print(JLONG_FORMAT, value->j);              break;
3498   case T_FLOAT:     st->print("%f", value->f);                      break;
3499   case T_DOUBLE:    st->print("%lf", value->d);                     break;
3500   default:          st->print("type %d?", type);                    break;
3501   }
3502 }
3503 
3504 // Support for java_lang_ref_Reference
3505 
3506 bool java_lang_ref_Reference::is_referent_field(oop obj, ptrdiff_t offset) {
3507   assert(!oopDesc::is_null(obj), "sanity");
3508   if (offset != java_lang_ref_Reference::referent_offset) {
3509     return false;
3510   }
3511 
3512   Klass* k = obj->klass();
3513   if (!k->is_instance_klass()) {
3514     return false;
3515   }
3516 
3517   InstanceKlass* ik = InstanceKlass::cast(obj->klass());
3518   bool is_reference = ik->reference_type() != REF_NONE;
3519   assert(!is_reference || ik->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
3520   return is_reference;
3521 }
3522 
3523 // Support for java_lang_ref_SoftReference
3524 //
3525 
3526 #define SOFTREFERENCE_FIELDS_DO(macro) \
3527   macro(timestamp_offset,    k, "timestamp", long_signature, false); \


4114 
4115 void java_lang_System::compute_offsets() {
4116   InstanceKlass* k = SystemDictionary::System_klass();
4117   SYSTEM_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4118 }
4119 
4120 #if INCLUDE_CDS
4121 void java_lang_System::serialize(SerializeClosure* f) {
4122    SYSTEM_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4123 }
4124 #endif
4125 
4126 int java_lang_System::in_offset_in_bytes() { return static_in_offset; }
4127 int java_lang_System::out_offset_in_bytes() { return static_out_offset; }
4128 int java_lang_System::err_offset_in_bytes() { return static_err_offset; }
4129 
4130 
4131 bool java_lang_System::has_security_manager() {
4132   InstanceKlass* ik = SystemDictionary::System_klass();
4133   oop base = ik->static_field_base_raw();
4134   return !oopDesc::is_null(base->obj_field(static_security_offset));
4135 }
4136 
4137 int java_lang_Class::_klass_offset;
4138 int java_lang_Class::_array_klass_offset;
4139 int java_lang_Class::_oop_size_offset;
4140 int java_lang_Class::_static_oop_field_count_offset;
4141 int java_lang_Class::_class_loader_offset;
4142 int java_lang_Class::_module_offset;
4143 int java_lang_Class::_protection_domain_offset;
4144 int java_lang_Class::_component_mirror_offset;
4145 int java_lang_Class::_init_lock_offset;
4146 int java_lang_Class::_signers_offset;
4147 GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL;
4148 GrowableArray<Klass*>* java_lang_Class::_fixup_module_field_list = NULL;
4149 int java_lang_Throwable::backtrace_offset;
4150 int java_lang_Throwable::detailMessage_offset;
4151 int java_lang_Throwable::stackTrace_offset;
4152 int java_lang_Throwable::depth_offset;
4153 int java_lang_Throwable::static_unassigned_stacktrace_offset;
4154 int java_lang_reflect_AccessibleObject::override_offset;




3487 }
3488 
3489 
3490 void java_lang_boxing_object::print(BasicType type, jvalue* value, outputStream* st) {
3491   switch (type) {
3492   case T_BOOLEAN:   st->print("%s", value->z ? "true" : "false");   break;
3493   case T_CHAR:      st->print("%d", value->c);                      break;
3494   case T_BYTE:      st->print("%d", value->b);                      break;
3495   case T_SHORT:     st->print("%d", value->s);                      break;
3496   case T_INT:       st->print("%d", value->i);                      break;
3497   case T_LONG:      st->print(JLONG_FORMAT, value->j);              break;
3498   case T_FLOAT:     st->print("%f", value->f);                      break;
3499   case T_DOUBLE:    st->print("%lf", value->d);                     break;
3500   default:          st->print("type %d?", type);                    break;
3501   }
3502 }
3503 
3504 // Support for java_lang_ref_Reference
3505 
3506 bool java_lang_ref_Reference::is_referent_field(oop obj, ptrdiff_t offset) {
3507   assert(obj != NULL, "sanity");
3508   if (offset != java_lang_ref_Reference::referent_offset) {
3509     return false;
3510   }
3511 
3512   Klass* k = obj->klass();
3513   if (!k->is_instance_klass()) {
3514     return false;
3515   }
3516 
3517   InstanceKlass* ik = InstanceKlass::cast(obj->klass());
3518   bool is_reference = ik->reference_type() != REF_NONE;
3519   assert(!is_reference || ik->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
3520   return is_reference;
3521 }
3522 
3523 // Support for java_lang_ref_SoftReference
3524 //
3525 
3526 #define SOFTREFERENCE_FIELDS_DO(macro) \
3527   macro(timestamp_offset,    k, "timestamp", long_signature, false); \


4114 
4115 void java_lang_System::compute_offsets() {
4116   InstanceKlass* k = SystemDictionary::System_klass();
4117   SYSTEM_FIELDS_DO(FIELD_COMPUTE_OFFSET);
4118 }
4119 
4120 #if INCLUDE_CDS
4121 void java_lang_System::serialize(SerializeClosure* f) {
4122    SYSTEM_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
4123 }
4124 #endif
4125 
4126 int java_lang_System::in_offset_in_bytes() { return static_in_offset; }
4127 int java_lang_System::out_offset_in_bytes() { return static_out_offset; }
4128 int java_lang_System::err_offset_in_bytes() { return static_err_offset; }
4129 
4130 
4131 bool java_lang_System::has_security_manager() {
4132   InstanceKlass* ik = SystemDictionary::System_klass();
4133   oop base = ik->static_field_base_raw();
4134   return base->obj_field(static_security_offset) != NULL;
4135 }
4136 
4137 int java_lang_Class::_klass_offset;
4138 int java_lang_Class::_array_klass_offset;
4139 int java_lang_Class::_oop_size_offset;
4140 int java_lang_Class::_static_oop_field_count_offset;
4141 int java_lang_Class::_class_loader_offset;
4142 int java_lang_Class::_module_offset;
4143 int java_lang_Class::_protection_domain_offset;
4144 int java_lang_Class::_component_mirror_offset;
4145 int java_lang_Class::_init_lock_offset;
4146 int java_lang_Class::_signers_offset;
4147 GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL;
4148 GrowableArray<Klass*>* java_lang_Class::_fixup_module_field_list = NULL;
4149 int java_lang_Throwable::backtrace_offset;
4150 int java_lang_Throwable::detailMessage_offset;
4151 int java_lang_Throwable::stackTrace_offset;
4152 int java_lang_Throwable::depth_offset;
4153 int java_lang_Throwable::static_unassigned_stacktrace_offset;
4154 int java_lang_reflect_AccessibleObject::override_offset;


< prev index next >