< prev index next >

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

Print this page

1186         case JVM_SIGNATURE_BYTE:
1187             out.writeByte(((ByteField)field).getValue(oop));
1188             break;
1189         case JVM_SIGNATURE_SHORT:
1190             out.writeShort(((ShortField)field).getValue(oop));
1191             break;
1192         case JVM_SIGNATURE_INT:
1193             out.writeInt(((IntField)field).getValue(oop));
1194             break;
1195         case JVM_SIGNATURE_LONG:
1196             out.writeLong(((LongField)field).getValue(oop));
1197             break;
1198         case JVM_SIGNATURE_FLOAT:
1199             out.writeFloat(((FloatField)field).getValue(oop));
1200             break;
1201         case JVM_SIGNATURE_DOUBLE:
1202             out.writeDouble(((DoubleField)field).getValue(oop));
1203             break;
1204         case JVM_SIGNATURE_CLASS:
1205         case JVM_SIGNATURE_ARRAY: {
1206             if (VM.getVM().isCompressedOopsEnabled()) {




1207               OopHandle handle = ((NarrowOopField)field).getValueAsOopHandle(oop);
1208               writeObjectID(getAddressValue(handle));
1209             } else {
1210               OopHandle handle = ((OopField)field).getValueAsOopHandle(oop);
1211               writeObjectID(getAddressValue(handle));
1212             }
1213             break;
1214         }
1215         default:
1216             throw new RuntimeException("should not reach here");
1217         }
1218     }
1219 
1220     private void writeHeader(int tag, int len) throws IOException {
1221         out.writeByte((byte)tag);
1222         out.writeInt(0); // current ticks
1223         out.writeInt(len);
1224     }
1225 
1226     private void writeDummyTrace() throws IOException {

1186         case JVM_SIGNATURE_BYTE:
1187             out.writeByte(((ByteField)field).getValue(oop));
1188             break;
1189         case JVM_SIGNATURE_SHORT:
1190             out.writeShort(((ShortField)field).getValue(oop));
1191             break;
1192         case JVM_SIGNATURE_INT:
1193             out.writeInt(((IntField)field).getValue(oop));
1194             break;
1195         case JVM_SIGNATURE_LONG:
1196             out.writeLong(((LongField)field).getValue(oop));
1197             break;
1198         case JVM_SIGNATURE_FLOAT:
1199             out.writeFloat(((FloatField)field).getValue(oop));
1200             break;
1201         case JVM_SIGNATURE_DOUBLE:
1202             out.writeDouble(((DoubleField)field).getValue(oop));
1203             break;
1204         case JVM_SIGNATURE_CLASS:
1205         case JVM_SIGNATURE_ARRAY: {
1206             if (field.isFlat()) {
1207               // FIXME - we don't handle flattened fields yet. Just treat them
1208               // as a null reference. See JDK-8381370.
1209               writeObjectID(null);
1210             } else if (VM.getVM().isCompressedOopsEnabled()) {
1211               OopHandle handle = ((NarrowOopField)field).getValueAsOopHandle(oop);
1212               writeObjectID(getAddressValue(handle));
1213             } else {
1214               OopHandle handle = ((OopField)field).getValueAsOopHandle(oop);
1215               writeObjectID(getAddressValue(handle));
1216             }
1217             break;
1218         }
1219         default:
1220             throw new RuntimeException("should not reach here");
1221         }
1222     }
1223 
1224     private void writeHeader(int tag, int len) throws IOException {
1225         out.writeByte((byte)tag);
1226         out.writeInt(0); // current ticks
1227         out.writeInt(len);
1228     }
1229 
1230     private void writeDummyTrace() throws IOException {
< prev index next >