< prev index next >
src/share/vm/services/heapDumper.cpp
Print this page
@@ -812,15 +812,15 @@
}
// returns the size of the instance of the given class
u4 DumperSupport::instance_size(Klass* k) {
HandleMark hm;
- instanceKlassHandle ikh = instanceKlassHandle(Thread::current(), k);
+ InstanceKlass* ik = InstanceKlass::cast(k);
u4 size = 0;
- for (FieldStream fld(ikh, false, false); !fld.eos(); fld.next()) {
+ for (FieldStream fld(ik, false, false); !fld.eos(); fld.next()) {
if (!fld.access_flags().is_static()) {
Symbol* sig = fld.signature();
switch (sig->byte_at(0)) {
case JVM_SIGNATURE_CLASS :
case JVM_SIGNATURE_ARRAY : size += oopSize; break;
@@ -845,43 +845,43 @@
}
// dumps static fields of the given class
void DumperSupport::dump_static_fields(DumpWriter* writer, Klass* k) {
HandleMark hm;
- instanceKlassHandle ikh = instanceKlassHandle(Thread::current(), k);
+ InstanceKlass* ik = InstanceKlass::cast(k);
// pass 1 - count the static fields
u2 field_count = 0;
- for (FieldStream fldc(ikh, true, true); !fldc.eos(); fldc.next()) {
+ for (FieldStream fldc(ik, true, true); !fldc.eos(); fldc.next()) {
if (fldc.access_flags().is_static()) field_count++;
}
writer->write_u2(field_count);
// pass 2 - dump the field descriptors and raw values
- for (FieldStream fld(ikh, true, true); !fld.eos(); fld.next()) {
+ for (FieldStream fld(ik, true, true); !fld.eos(); fld.next()) {
if (fld.access_flags().is_static()) {
Symbol* sig = fld.signature();
writer->write_symbolID(fld.name()); // name
writer->write_u1(sig2tag(sig)); // type
// value
int offset = fld.offset();
- address addr = (address)ikh->java_mirror() + offset;
+ address addr = (address)ik->java_mirror() + offset;
dump_field_value(writer, sig->byte_at(0), addr);
}
}
}
// dump the raw values of the instance fields of the given object
void DumperSupport::dump_instance_fields(DumpWriter* writer, oop o) {
HandleMark hm;
- instanceKlassHandle ikh = instanceKlassHandle(Thread::current(), o->klass());
+ InstanceKlass* ik = InstanceKlass::cast(o->klass());
- for (FieldStream fld(ikh, false, false); !fld.eos(); fld.next()) {
+ for (FieldStream fld(ik, false, false); !fld.eos(); fld.next()) {
if (!fld.access_flags().is_static()) {
Symbol* sig = fld.signature();
address addr = (address)o + fld.offset();
dump_field_value(writer, sig->byte_at(0), addr);
@@ -890,22 +890,22 @@
}
// dumps the definition of the instance fields for a given class
void DumperSupport::dump_instance_field_descriptors(DumpWriter* writer, Klass* k) {
HandleMark hm;
- instanceKlassHandle ikh = instanceKlassHandle(Thread::current(), k);
+ InstanceKlass* ik = InstanceKlass::cast(k);
// pass 1 - count the instance fields
u2 field_count = 0;
- for (FieldStream fldc(ikh, true, true); !fldc.eos(); fldc.next()) {
+ for (FieldStream fldc(ik, true, true); !fldc.eos(); fldc.next()) {
if (!fldc.access_flags().is_static()) field_count++;
}
writer->write_u2(field_count);
// pass 2 - dump the field descriptors
- for (FieldStream fld(ikh, true, true); !fld.eos(); fld.next()) {
+ for (FieldStream fld(ik, true, true); !fld.eos(); fld.next()) {
if (!fld.access_flags().is_static()) {
Symbol* sig = fld.signature();
writer->write_symbolID(fld.name()); // name
writer->write_u1(sig2tag(sig)); // type
< prev index next >