equal
deleted
inserted
replaced
694 writer->write_u4(len); |
694 writer->write_u4(len); |
695 } |
695 } |
696 |
696 |
697 // returns hprof tag for the given type signature |
697 // returns hprof tag for the given type signature |
698 hprofTag DumperSupport::sig2tag(Symbol* sig) { |
698 hprofTag DumperSupport::sig2tag(Symbol* sig) { |
699 switch (sig->byte_at(0)) { |
699 switch (sig->char_at(0)) { |
700 case JVM_SIGNATURE_CLASS : return HPROF_NORMAL_OBJECT; |
700 case JVM_SIGNATURE_CLASS : return HPROF_NORMAL_OBJECT; |
701 case JVM_SIGNATURE_ARRAY : return HPROF_NORMAL_OBJECT; |
701 case JVM_SIGNATURE_ARRAY : return HPROF_NORMAL_OBJECT; |
702 case JVM_SIGNATURE_BYTE : return HPROF_BYTE; |
702 case JVM_SIGNATURE_BYTE : return HPROF_BYTE; |
703 case JVM_SIGNATURE_CHAR : return HPROF_CHAR; |
703 case JVM_SIGNATURE_CHAR : return HPROF_CHAR; |
704 case JVM_SIGNATURE_FLOAT : return HPROF_FLOAT; |
704 case JVM_SIGNATURE_FLOAT : return HPROF_FLOAT; |
819 u4 size = 0; |
819 u4 size = 0; |
820 |
820 |
821 for (FieldStream fld(ik, false, false); !fld.eos(); fld.next()) { |
821 for (FieldStream fld(ik, false, false); !fld.eos(); fld.next()) { |
822 if (!fld.access_flags().is_static()) { |
822 if (!fld.access_flags().is_static()) { |
823 Symbol* sig = fld.signature(); |
823 Symbol* sig = fld.signature(); |
824 switch (sig->byte_at(0)) { |
824 switch (sig->char_at(0)) { |
825 case JVM_SIGNATURE_CLASS : |
825 case JVM_SIGNATURE_CLASS : |
826 case JVM_SIGNATURE_ARRAY : size += oopSize; break; |
826 case JVM_SIGNATURE_ARRAY : size += oopSize; break; |
827 |
827 |
828 case JVM_SIGNATURE_BYTE : |
828 case JVM_SIGNATURE_BYTE : |
829 case JVM_SIGNATURE_BOOLEAN : size += 1; break; |
829 case JVM_SIGNATURE_BOOLEAN : size += 1; break; |
887 |
887 |
888 writer->write_symbolID(fld.name()); // name |
888 writer->write_symbolID(fld.name()); // name |
889 writer->write_u1(sig2tag(sig)); // type |
889 writer->write_u1(sig2tag(sig)); // type |
890 |
890 |
891 // value |
891 // value |
892 dump_field_value(writer, sig->byte_at(0), ik->java_mirror(), fld.offset()); |
892 dump_field_value(writer, sig->char_at(0), ik->java_mirror(), fld.offset()); |
893 } |
893 } |
894 } |
894 } |
895 |
895 |
896 // Add resolved_references for each class that has them |
896 // Add resolved_references for each class that has them |
897 if (resolved_references != NULL) { |
897 if (resolved_references != NULL) { |
923 InstanceKlass* ik = InstanceKlass::cast(o->klass()); |
923 InstanceKlass* ik = InstanceKlass::cast(o->klass()); |
924 |
924 |
925 for (FieldStream fld(ik, false, false); !fld.eos(); fld.next()) { |
925 for (FieldStream fld(ik, false, false); !fld.eos(); fld.next()) { |
926 if (!fld.access_flags().is_static()) { |
926 if (!fld.access_flags().is_static()) { |
927 Symbol* sig = fld.signature(); |
927 Symbol* sig = fld.signature(); |
928 dump_field_value(writer, sig->byte_at(0), o, fld.offset()); |
928 dump_field_value(writer, sig->char_at(0), o, fld.offset()); |
929 } |
929 } |
930 } |
930 } |
931 } |
931 } |
932 |
932 |
933 // dumps the definition of the instance fields for a given class |
933 // dumps the definition of the instance fields for a given class |