equal
deleted
inserted
replaced
211 bool MutableSpace::cas_deallocate(HeapWord *obj, size_t size) { |
211 bool MutableSpace::cas_deallocate(HeapWord *obj, size_t size) { |
212 HeapWord* expected_top = obj + size; |
212 HeapWord* expected_top = obj + size; |
213 return (HeapWord*)Atomic::cmpxchg_ptr(obj, top_addr(), expected_top) == expected_top; |
213 return (HeapWord*)Atomic::cmpxchg_ptr(obj, top_addr(), expected_top) == expected_top; |
214 } |
214 } |
215 |
215 |
216 void MutableSpace::oop_iterate(ExtendedOopClosure* cl) { |
|
217 HeapWord* obj_addr = bottom(); |
|
218 HeapWord* t = top(); |
|
219 // Could call objects iterate, but this is easier. |
|
220 while (obj_addr < t) { |
|
221 obj_addr += oop(obj_addr)->oop_iterate(cl); |
|
222 } |
|
223 } |
|
224 |
|
225 void MutableSpace::oop_iterate_no_header(OopClosure* cl) { |
216 void MutableSpace::oop_iterate_no_header(OopClosure* cl) { |
226 HeapWord* obj_addr = bottom(); |
217 HeapWord* obj_addr = bottom(); |
227 HeapWord* t = top(); |
218 HeapWord* t = top(); |
228 // Could call objects iterate, but this is easier. |
219 // Could call objects iterate, but this is easier. |
229 while (obj_addr < t) { |
220 while (obj_addr < t) { |