Mercurial > hg > truffle
changeset 635:fe2441500281
Merge
author | ysr |
---|---|
date | Fri, 13 Mar 2009 17:06:44 -0700 |
parents | 09f82af55c3e (diff) 4018e98c778a (current diff) |
children | 6c4cea9bfa11 |
files | |
diffstat | 1 files changed, 5 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp Fri Mar 13 16:10:21 2009 -0400 +++ b/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp Fri Mar 13 17:06:44 2009 -0700 @@ -63,9 +63,8 @@ // return NULL. HeapWord* allocate(size_t word_sz) { HeapWord* res = _top; - HeapWord* new_top = _top + word_sz; - if (new_top <= _end) { - _top = new_top; + if (pointer_delta(_end, _top) >= word_sz) { + _top = _top + word_sz; return res; } else { return NULL; @@ -75,10 +74,9 @@ // Undo the last allocation in the buffer, which is required to be of the // "obj" of the given "word_sz". void undo_allocation(HeapWord* obj, size_t word_sz) { - assert(_top - word_sz >= _bottom - && _top - word_sz == obj, - "Bad undo_allocation"); - _top = _top - word_sz; + assert(pointer_delta(_top, _bottom) >= word_sz, "Bad undo"); + assert(pointer_delta(_top, obj) == word_sz, "Bad undo"); + _top = obj; } // The total (word) size of the buffer, including both allocated and