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

agent/src/share/classes/sun/jvm/hotspot/compiler/ImmutableOopMap.java

Print this page

        

*** 29,101 **** import sun.jvm.hotspot.code.*; import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.runtime.*; import sun.jvm.hotspot.types.*; ! public class OopMap 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; 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("OopMap"); ! ! 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"); } ! public OopMap(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 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); } } --- 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 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"); ! countField = type.getCIntegerField("_count"); ! classSize = type.getSize(); } ! public ImmutableOopMap(Address addr) { super(addr); } //-------------------------------------------------------------------------------- // Internals only below this point // ! long getCount() { ! return countField.getValue(addr); } ! 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