47 });
48 }
49
50 private static synchronized void initialize(TypeDataBase db) {
51 Type type = db.lookupType("DefNewGeneration");
52
53 edenSpaceField = type.getAddressField("_eden_space");
54 fromSpaceField = type.getAddressField("_from_space");
55 toSpaceField = type.getAddressField("_to_space");
56 }
57
58 public DefNewGeneration(Address addr) {
59 super(addr);
60 }
61
62 public Generation.Name kind() {
63 return Generation.Name.DEF_NEW;
64 }
65
66 // Accessing spaces
67 public EdenSpace eden() {
68 return (EdenSpace) VMObjectFactory.newObject(EdenSpace.class, edenSpaceField.getValue(addr));
69 }
70
71 public ContiguousSpace from() {
72 return (ContiguousSpace) VMObjectFactory.newObject(ContiguousSpace.class, fromSpaceField.getValue(addr));
73 }
74
75 public ContiguousSpace to() {
76 return (ContiguousSpace) VMObjectFactory.newObject(ContiguousSpace.class, toSpaceField.getValue(addr));
77 }
78
79 public long capacity() { return eden().capacity() + from().capacity(); /* to() is only used during scavenge */ }
80 public long used() { return eden().used() + from().used(); /* to() is only used during scavenge */ }
81 public long free() { return eden().free() + from().free(); /* to() is only used during scavenge */ }
82 public long contiguousAvailable() { return eden().free(); }
83
84 public String name() {
85 return "default new generation";
86 }
87
88 public void spaceIterate(SpaceClosure blk, boolean usedOnly) {
|
47 });
48 }
49
50 private static synchronized void initialize(TypeDataBase db) {
51 Type type = db.lookupType("DefNewGeneration");
52
53 edenSpaceField = type.getAddressField("_eden_space");
54 fromSpaceField = type.getAddressField("_from_space");
55 toSpaceField = type.getAddressField("_to_space");
56 }
57
58 public DefNewGeneration(Address addr) {
59 super(addr);
60 }
61
62 public Generation.Name kind() {
63 return Generation.Name.DEF_NEW;
64 }
65
66 // Accessing spaces
67 public ContiguousSpace eden() {
68 return (ContiguousSpace) VMObjectFactory.newObject(ContiguousSpace.class, edenSpaceField.getValue(addr));
69 }
70
71 public ContiguousSpace from() {
72 return (ContiguousSpace) VMObjectFactory.newObject(ContiguousSpace.class, fromSpaceField.getValue(addr));
73 }
74
75 public ContiguousSpace to() {
76 return (ContiguousSpace) VMObjectFactory.newObject(ContiguousSpace.class, toSpaceField.getValue(addr));
77 }
78
79 public long capacity() { return eden().capacity() + from().capacity(); /* to() is only used during scavenge */ }
80 public long used() { return eden().used() + from().used(); /* to() is only used during scavenge */ }
81 public long free() { return eden().free() + from().free(); /* to() is only used during scavenge */ }
82 public long contiguousAvailable() { return eden().free(); }
83
84 public String name() {
85 return "default new generation";
86 }
87
88 public void spaceIterate(SpaceClosure blk, boolean usedOnly) {
|