agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7030300 Sdiff agent/src/share/classes/sun/jvm/hotspot/utilities

agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java

Print this page




 729         for (Iterator itr = fields.iterator(); itr.hasNext();) {
 730             writeField((Field) itr.next(), instance);
 731         }
 732     }
 733 
 734     //-- Internals only below this point
 735 
 736     private void writeFieldDescriptors(List fields, InstanceKlass ik)
 737         throws IOException {
 738         // ik == null for instance fields.
 739         out.writeShort((short) fields.size());
 740         for (Iterator itr = fields.iterator(); itr.hasNext();) {
 741             Field field = (Field) itr.next();
 742             Symbol name = symTbl.probe(field.getID().getName());
 743             writeSymbolID(name);
 744             char typeCode = (char) field.getSignature().getByteAt(0);
 745             int kind = signatureToHprofKind(typeCode);
 746             out.writeByte((byte)kind);
 747             if (ik != null) {
 748                 // static field
 749                 writeField(field, ik);
 750             }
 751         }
 752     }
 753 
 754     public static int signatureToHprofKind(char ch) {
 755         switch (ch) {
 756         case JVM_SIGNATURE_CLASS:
 757         case JVM_SIGNATURE_ARRAY:
 758             return HPROF_NORMAL_OBJECT;
 759         case JVM_SIGNATURE_BOOLEAN:
 760             return HPROF_BOOLEAN;
 761         case JVM_SIGNATURE_CHAR:
 762             return HPROF_CHAR;
 763         case JVM_SIGNATURE_FLOAT:
 764             return HPROF_FLOAT;
 765         case JVM_SIGNATURE_DOUBLE:
 766             return HPROF_DOUBLE;
 767         case JVM_SIGNATURE_BYTE:
 768             return HPROF_BYTE;
 769         case JVM_SIGNATURE_SHORT:




 729         for (Iterator itr = fields.iterator(); itr.hasNext();) {
 730             writeField((Field) itr.next(), instance);
 731         }
 732     }
 733 
 734     //-- Internals only below this point
 735 
 736     private void writeFieldDescriptors(List fields, InstanceKlass ik)
 737         throws IOException {
 738         // ik == null for instance fields.
 739         out.writeShort((short) fields.size());
 740         for (Iterator itr = fields.iterator(); itr.hasNext();) {
 741             Field field = (Field) itr.next();
 742             Symbol name = symTbl.probe(field.getID().getName());
 743             writeSymbolID(name);
 744             char typeCode = (char) field.getSignature().getByteAt(0);
 745             int kind = signatureToHprofKind(typeCode);
 746             out.writeByte((byte)kind);
 747             if (ik != null) {
 748                 // static field
 749                 writeField(field, ik.getJavaMirror());
 750             }
 751         }
 752     }
 753 
 754     public static int signatureToHprofKind(char ch) {
 755         switch (ch) {
 756         case JVM_SIGNATURE_CLASS:
 757         case JVM_SIGNATURE_ARRAY:
 758             return HPROF_NORMAL_OBJECT;
 759         case JVM_SIGNATURE_BOOLEAN:
 760             return HPROF_BOOLEAN;
 761         case JVM_SIGNATURE_CHAR:
 762             return HPROF_CHAR;
 763         case JVM_SIGNATURE_FLOAT:
 764             return HPROF_FLOAT;
 765         case JVM_SIGNATURE_DOUBLE:
 766             return HPROF_DOUBLE;
 767         case JVM_SIGNATURE_BYTE:
 768             return HPROF_BYTE;
 769         case JVM_SIGNATURE_SHORT:


agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File