Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/shared/mutableSpace.cpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | b632e80fc9dc |
children | db9981fd3124 |
comparison
equal
deleted
inserted
replaced
6724:36d1d483d5d6 | 6725:da91efe96a93 |
---|---|
214 bool MutableSpace::cas_deallocate(HeapWord *obj, size_t size) { | 214 bool MutableSpace::cas_deallocate(HeapWord *obj, size_t size) { |
215 HeapWord* expected_top = obj + size; | 215 HeapWord* expected_top = obj + size; |
216 return (HeapWord*)Atomic::cmpxchg_ptr(obj, top_addr(), expected_top) == expected_top; | 216 return (HeapWord*)Atomic::cmpxchg_ptr(obj, top_addr(), expected_top) == expected_top; |
217 } | 217 } |
218 | 218 |
219 void MutableSpace::oop_iterate(OopClosure* cl) { | 219 void MutableSpace::oop_iterate(ExtendedOopClosure* cl) { |
220 HeapWord* obj_addr = bottom(); | 220 HeapWord* obj_addr = bottom(); |
221 HeapWord* t = top(); | 221 HeapWord* t = top(); |
222 // Could call objects iterate, but this is easier. | 222 // Could call objects iterate, but this is easier. |
223 while (obj_addr < t) { | 223 while (obj_addr < t) { |
224 obj_addr += oop(obj_addr)->oop_iterate(cl); | 224 obj_addr += oop(obj_addr)->oop_iterate(cl); |
225 } | |
226 } | |
227 | |
228 void MutableSpace::oop_iterate_no_header(OopClosure* cl) { | |
229 HeapWord* obj_addr = bottom(); | |
230 HeapWord* t = top(); | |
231 // Could call objects iterate, but this is easier. | |
232 while (obj_addr < t) { | |
233 obj_addr += oop(obj_addr)->oop_iterate_no_header(cl); | |
225 } | 234 } |
226 } | 235 } |
227 | 236 |
228 void MutableSpace::object_iterate(ObjectClosure* cl) { | 237 void MutableSpace::object_iterate(ObjectClosure* cl) { |
229 HeapWord* p = bottom(); | 238 HeapWord* p = bottom(); |