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

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

Print this page




 147         writeArrayLength(array);
 148         // write array elements
 149         out.println("\t<attr name='elements'>");
 150         TypeArrayKlass klass = (TypeArrayKlass) array.getKlass();
 151         if (klass.getElementType() == TypeArrayKlass.T_CHAR) {
 152             // char[] special treatment -- write it as string
 153             out.print("\t<string>");
 154             out.print(escapeXMLChars(OopUtilities.charArrayToString(array)));
 155             out.println("</string>");
 156         } else {
 157             out.println("\t<seq>");
 158             writeObjectFields(array);
 159             out.println("\t</seq>");
 160         }
 161         out.println("\t</attr>");
 162         writeObjectFooter(array);
 163     }
 164 
 165     protected void writeClass(Instance instance) throws IOException  {
 166         writeObjectHeader(instance);
 167         Klass reflectedType = OopUtilities.classOopToKlass(instance);
 168         boolean isInstanceKlass = (reflectedType instanceof InstanceKlass);
 169         // reflectedType is null for primitive types (int.class etc).
 170         if (reflectedType != null) {
 171             Symbol name = reflectedType.getName();
 172             if (name != null) {
 173                 // write class name as an attribute
 174                 writeAttribute("class-name", "string", name.asString());
 175             }
 176             if (isInstanceKlass) {
 177                 // write object-size as an attribute
 178                 long sizeInBytes = reflectedType.getLayoutHelper();
 179                 writeAttribute("object-size", "int",
 180                                Long.toString(sizeInBytes));
 181                 // write static fields of this class.
 182                 writeObjectFields(reflectedType);
 183             }
 184         }
 185         out.println("</node>");
 186 
 187         // write edges for super class and direct interfaces




 147         writeArrayLength(array);
 148         // write array elements
 149         out.println("\t<attr name='elements'>");
 150         TypeArrayKlass klass = (TypeArrayKlass) array.getKlass();
 151         if (klass.getElementType() == TypeArrayKlass.T_CHAR) {
 152             // char[] special treatment -- write it as string
 153             out.print("\t<string>");
 154             out.print(escapeXMLChars(OopUtilities.charArrayToString(array)));
 155             out.println("</string>");
 156         } else {
 157             out.println("\t<seq>");
 158             writeObjectFields(array);
 159             out.println("\t</seq>");
 160         }
 161         out.println("\t</attr>");
 162         writeObjectFooter(array);
 163     }
 164 
 165     protected void writeClass(Instance instance) throws IOException  {
 166         writeObjectHeader(instance);
 167         Klass reflectedType = java_lang_Class.asKlass(instance);
 168         boolean isInstanceKlass = (reflectedType instanceof InstanceKlass);
 169         // reflectedType is null for primitive types (int.class etc).
 170         if (reflectedType != null) {
 171             Symbol name = reflectedType.getName();
 172             if (name != null) {
 173                 // write class name as an attribute
 174                 writeAttribute("class-name", "string", name.asString());
 175             }
 176             if (isInstanceKlass) {
 177                 // write object-size as an attribute
 178                 long sizeInBytes = reflectedType.getLayoutHelper();
 179                 writeAttribute("object-size", "int",
 180                                Long.toString(sizeInBytes));
 181                 // write static fields of this class.
 182                 writeObjectFields(reflectedType);
 183             }
 184         }
 185         out.println("</node>");
 186 
 187         // write edges for super class and direct interfaces


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