62 initialize(VM.getVM().getTypeDataBase());
63 }
64 });
65 }
66
67 static private synchronized void initialize(TypeDataBase db) {
68 Type type = db.lookupType("G1CollectedHeap");
69
70 hrmFieldOffset = type.getField("_hrm").getOffset();
71 summaryBytesUsedField = type.getCIntegerField("_summary_bytes_used");
72 g1mmField = type.getAddressField("_g1mm");
73 oldSetFieldOffset = type.getField("_old_set").getOffset();
74 humongousSetFieldOffset = type.getField("_humongous_set").getOffset();
75 }
76
77 public long capacity() {
78 return hrm().capacity();
79 }
80
81 public long used() {
82 return summaryBytesUsedField.getValue();
83 }
84
85 public long n_regions() {
86 return hrm().length();
87 }
88
89 private HeapRegionManager hrm() {
90 Address hrmAddr = addr.addOffsetTo(hrmFieldOffset);
91 return (HeapRegionManager) VMObjectFactory.newObject(HeapRegionManager.class,
92 hrmAddr);
93 }
94
95 public G1MonitoringSupport g1mm() {
96 Address g1mmAddr = g1mmField.getValue(addr);
97 return (G1MonitoringSupport) VMObjectFactory.newObject(G1MonitoringSupport.class, g1mmAddr);
98 }
99
100 public HeapRegionSetBase oldSet() {
101 Address oldSetAddr = addr.addOffsetTo(oldSetFieldOffset);
102 return (HeapRegionSetBase) VMObjectFactory.newObject(HeapRegionSetBase.class,
|
62 initialize(VM.getVM().getTypeDataBase());
63 }
64 });
65 }
66
67 static private synchronized void initialize(TypeDataBase db) {
68 Type type = db.lookupType("G1CollectedHeap");
69
70 hrmFieldOffset = type.getField("_hrm").getOffset();
71 summaryBytesUsedField = type.getCIntegerField("_summary_bytes_used");
72 g1mmField = type.getAddressField("_g1mm");
73 oldSetFieldOffset = type.getField("_old_set").getOffset();
74 humongousSetFieldOffset = type.getField("_humongous_set").getOffset();
75 }
76
77 public long capacity() {
78 return hrm().capacity();
79 }
80
81 public long used() {
82 return summaryBytesUsedField.getValue(addr);
83 }
84
85 public long n_regions() {
86 return hrm().length();
87 }
88
89 private HeapRegionManager hrm() {
90 Address hrmAddr = addr.addOffsetTo(hrmFieldOffset);
91 return (HeapRegionManager) VMObjectFactory.newObject(HeapRegionManager.class,
92 hrmAddr);
93 }
94
95 public G1MonitoringSupport g1mm() {
96 Address g1mmAddr = g1mmField.getValue(addr);
97 return (G1MonitoringSupport) VMObjectFactory.newObject(G1MonitoringSupport.class, g1mmAddr);
98 }
99
100 public HeapRegionSetBase oldSet() {
101 Address oldSetAddr = addr.addOffsetTo(oldSetFieldOffset);
102 return (HeapRegionSetBase) VMObjectFactory.newObject(HeapRegionSetBase.class,
|