< prev index next >

src/hotspot/share/classfile/javaClasses.cpp

Print this page




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




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


< prev index next >