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