agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java	Fri Oct 17 15:34:48 2014
--- new/agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java	Fri Oct 17 15:34:48 2014

*** 35,45 **** --- 35,47 ---- public class GenCollectedHeap extends SharedHeap { private static CIntegerField nGensField; private static AddressField youngGenField; private static AddressField oldGenField; private static AddressField genSpecsField; + + private static AddressField youngGenSpecField; + private static AddressField oldGenSpecField; private static GenerationFactory genFactory; static { VM.registerVMInitializedObserver(new Observer() {
*** 53,65 **** --- 55,70 ---- Type type = db.lookupType("GenCollectedHeap"); nGensField = type.getCIntegerField("_n_gens"); youngGenField = type.getAddressField("_young_gen"); oldGenField = type.getAddressField("_old_gen"); genSpecsField = type.getAddressField("_gen_specs"); genFactory = new GenerationFactory(); + + Type colPolType = db.lookupType("GenCollectorPolicy"); + youngGenSpecField = colPolType.getAddressField("_young_gen_spec"); + oldGenSpecField = colPolType.getAddressField("_old_gen_spec"); } public GenCollectedHeap(Address addr) { super(addr); }
*** 121,137 **** --- 126,144 ---- if ((level < 0) || (level >= nGens())) { return null; } Address ptrList = genSpecsField.getValue(addr); if (ptrList == null) { return null; } + if (level == 0) { return (GenerationSpec) VMObjectFactory.newObject(GenerationSpec.class, ! ptrList.getAddressAt(level * VM.getVM().getAddressSize())); ! youngGenSpecField.getAddress()); + } else { + return (GenerationSpec) + VMObjectFactory.newObject(GenerationSpec.class, + oldGenSpecField.getAddress()); + } } public CollectedHeapName kind() { return CollectedHeapName.GEN_COLLECTED_HEAP; }

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