agent/src/share/classes/sun/jvm/hotspot/compiler/ImmutableOopMap.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMap.java	Thu Apr 30 16:11:26 2015
--- new/agent/src/share/classes/sun/jvm/hotspot/compiler/ImmutableOopMap.java	Thu Apr 30 16:11:26 2015

*** 29,101 **** --- 29,67 ---- import sun.jvm.hotspot.code.*; import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.runtime.*; import sun.jvm.hotspot.types.*; ! public class ImmutableOopMap extends VMObject { ! private static CIntegerField pcOffsetField; ! private static CIntegerField omvCountField; private static CIntegerField omvDataSizeField; private static AddressField omvDataField; private static AddressField compressedWriteStreamField; // This is actually a field inside class CompressedStream private static AddressField compressedStreamBufferField; ! private static CIntegerField countField; ! private static long classSize; static { VM.registerVMInitializedObserver(new Observer() { public void update(Observable o, Object data) { initialize(VM.getVM().getTypeDataBase()); } }); } private static void initialize(TypeDataBase db) { ! Type type = db.lookupType("ImmutableOopMap"); ! pcOffsetField = type.getCIntegerField("_pc_offset"); omvCountField = type.getCIntegerField("_omv_count"); omvDataSizeField = type.getCIntegerField("_omv_data_size"); omvDataField = type.getAddressField("_omv_data"); compressedWriteStreamField = type.getAddressField("_write_stream"); type = db.lookupType("CompressedStream"); compressedStreamBufferField = type.getAddressField("_buffer"); + countField = type.getCIntegerField("_count"); ! classSize = type.getSize(); } ! public ImmutableOopMap(Address addr) { super(addr); } public long getOffset() { return pcOffsetField.getValue(addr); } //-------------------------------------------------------------------------------- // Internals only below this point // // Accessors -- package private for now Address getOMVData() { return omvDataField.getValue(addr); + long getCount() { + return countField.getValue(addr); } ! long getOMVDataSize() { ! return omvDataSizeField.getValue(addr); } long getOMVCount() { return omvCountField.getValue(addr); } CompressedWriteStream getWriteStream() { Address wsAddr = compressedWriteStreamField.getValue(addr); if (wsAddr == null) { return null; } Address bufferAddr = compressedStreamBufferField.getValue(wsAddr); if (bufferAddr == null) { return null; } return new CompressedWriteStream(bufferAddr); ! public Address getData() { ! return addr.addOffsetTo(classSize); } }

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