< prev index next >

src/share/vm/services/heapDumper.cpp

Print this page

        

*** 812,826 **** } // returns the size of the instance of the given class u4 DumperSupport::instance_size(Klass* k) { HandleMark hm; ! instanceKlassHandle ikh = instanceKlassHandle(Thread::current(), k); u4 size = 0; ! for (FieldStream fld(ikh, 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; --- 812,826 ---- } // returns the size of the instance of the given class u4 DumperSupport::instance_size(Klass* k) { HandleMark hm; ! InstanceKlass* ik = InstanceKlass::cast(k); u4 size = 0; ! 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,887 **** } // dumps static fields of the given class void DumperSupport::dump_static_fields(DumpWriter* writer, Klass* k) { HandleMark hm; ! instanceKlassHandle ikh = instanceKlassHandle(Thread::current(), k); // pass 1 - count the static fields u2 field_count = 0; ! for (FieldStream fldc(ikh, 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()) { 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; 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()); ! for (FieldStream fld(ikh, 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); --- 845,887 ---- } // dumps static fields of the given class void DumperSupport::dump_static_fields(DumpWriter* writer, Klass* k) { HandleMark hm; ! InstanceKlass* ik = InstanceKlass::cast(k); // pass 1 - count the static fields u2 field_count = 0; ! 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(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)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; ! InstanceKlass* ik = InstanceKlass::cast(o->klass()); ! 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,911 **** } // 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); // pass 1 - count the instance fields u2 field_count = 0; ! for (FieldStream fldc(ikh, 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()) { if (!fld.access_flags().is_static()) { Symbol* sig = fld.signature(); writer->write_symbolID(fld.name()); // name writer->write_u1(sig2tag(sig)); // type --- 890,911 ---- } // dumps the definition of the instance fields for a given class void DumperSupport::dump_instance_field_descriptors(DumpWriter* writer, Klass* k) { HandleMark hm; ! InstanceKlass* ik = InstanceKlass::cast(k); // pass 1 - count the instance fields u2 field_count = 0; ! 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(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 >