src/share/vm/runtime/fieldDescriptor.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8014013 Sdiff src/share/vm/runtime

src/share/vm/runtime/fieldDescriptor.cpp

Print this page




  81   return constants()->int_at(initial_value_index());
  82 }
  83 
  84 jlong fieldDescriptor::long_initial_value() const {
  85   return constants()->long_at(initial_value_index());
  86 }
  87 
  88 jfloat fieldDescriptor::float_initial_value() const {
  89   return constants()->float_at(initial_value_index());
  90 }
  91 
  92 jdouble fieldDescriptor::double_initial_value() const {
  93   return constants()->double_at(initial_value_index());
  94 }
  95 
  96 oop fieldDescriptor::string_initial_value(TRAPS) const {
  97   return constants()->uncached_string_at(initial_value_index(), CHECK_0);
  98 }
  99 
 100 void fieldDescriptor::initialize(InstanceKlass* ik, int index) {
 101   _cp = ik->constants();



 102   FieldInfo* f = ik->field(index);
 103   assert(!f->is_internal(), "regular Java fields only");
 104 
 105   _access_flags = accessFlags_from(f->access_flags());
 106   guarantee(f->name_index() != 0 && f->signature_index() != 0, "bad constant pool index for fieldDescriptor");
 107   _index = index;

 108 }
 109 
 110 #ifndef PRODUCT
 111 









 112 void fieldDescriptor::print_on(outputStream* st) const {
 113   access_flags().print_on(st);
 114   name()->print_value_on(st);
 115   st->print(" ");
 116   signature()->print_value_on(st);
 117   st->print(" @%d ", offset());
 118   if (WizardMode && has_initial_value()) {
 119     st->print("(initval ");
 120     constantTag t = initial_value_tag();
 121     if (t.is_int()) {
 122       st->print("int %d)", int_initial_value());
 123     } else if (t.is_long()){
 124       st->print_jlong(long_initial_value());
 125     } else if (t.is_float()){
 126       st->print("float %f)", float_initial_value());
 127     } else if (t.is_double()){
 128       st->print("double %lf)", double_initial_value());
 129     }
 130   }
 131 }




  81   return constants()->int_at(initial_value_index());
  82 }
  83 
  84 jlong fieldDescriptor::long_initial_value() const {
  85   return constants()->long_at(initial_value_index());
  86 }
  87 
  88 jfloat fieldDescriptor::float_initial_value() const {
  89   return constants()->float_at(initial_value_index());
  90 }
  91 
  92 jdouble fieldDescriptor::double_initial_value() const {
  93   return constants()->double_at(initial_value_index());
  94 }
  95 
  96 oop fieldDescriptor::string_initial_value(TRAPS) const {
  97   return constants()->uncached_string_at(initial_value_index(), CHECK_0);
  98 }
  99 
 100 void fieldDescriptor::initialize(InstanceKlass* ik, int index) {
 101   if (_cp.is_null() || field_holder() != ik) {
 102     _cp = constantPoolHandle(Thread::current(), ik->constants());
 103     assert(field_holder() == ik, "must be already initialized to this class");
 104   }
 105   FieldInfo* f = ik->field(index);
 106   assert(!f->is_internal(), "regular Java fields only");
 107 
 108   _access_flags = accessFlags_from(f->access_flags());
 109   guarantee(f->name_index() != 0 && f->signature_index() != 0, "bad constant pool index for fieldDescriptor");
 110   _index = index;
 111   verify();
 112 }
 113 
 114 #ifndef PRODUCT
 115 
 116 void fieldDescriptor::verify() const {
 117   if (_cp.is_null()) {
 118     assert(_index == badInt, "constructor must be called");  // see constructor
 119   } else {
 120     assert(_index >= 0, "good index");
 121     assert(_index < field_holder()->java_fields_count(), "oob");
 122   }
 123 }
 124 
 125 void fieldDescriptor::print_on(outputStream* st) const {
 126   access_flags().print_on(st);
 127   name()->print_value_on(st);
 128   st->print(" ");
 129   signature()->print_value_on(st);
 130   st->print(" @%d ", offset());
 131   if (WizardMode && has_initial_value()) {
 132     st->print("(initval ");
 133     constantTag t = initial_value_tag();
 134     if (t.is_int()) {
 135       st->print("int %d)", int_initial_value());
 136     } else if (t.is_long()){
 137       st->print_jlong(long_initial_value());
 138     } else if (t.is_float()){
 139       st->print("float %f)", float_initial_value());
 140     } else if (t.is_double()){
 141       st->print("double %lf)", double_initial_value());
 142     }
 143   }
 144 }


src/share/vm/runtime/fieldDescriptor.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File