Mercurial > hg > graal-compiler
changeset 587:e57b6f22d1f3
Merge
author | kvn |
---|---|
date | Tue, 24 Feb 2009 09:53:20 -0800 |
parents | a0576ae7045f (diff) 6bea93606c11 (current diff) |
children | ef3b3df478b9 0ad1cb407fa1 |
files | src/cpu/x86/vm/vm_version_x86_32.cpp src/cpu/x86/vm/vm_version_x86_32.hpp src/cpu/x86/vm/vm_version_x86_64.cpp src/cpu/x86/vm/vm_version_x86_64.hpp |
diffstat | 1 files changed, 16 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/memory/cardTableModRefBS.cpp Mon Feb 23 16:03:19 2009 -0800 +++ b/src/share/vm/memory/cardTableModRefBS.cpp Tue Feb 24 09:53:20 2009 -0800 @@ -217,15 +217,28 @@ (HeapWord*) align_size_up((uintptr_t)new_end, _page_size); assert(new_end_aligned >= (HeapWord*) new_end, "align up, but less"); + // Check the other regions (excludes "ind") to ensure that + // the new_end_aligned does not intrude onto the committed + // space of another region. int ri = 0; for (ri = 0; ri < _cur_covered_regions; ri++) { if (ri != ind) { if (_committed[ri].contains(new_end_aligned)) { - assert((new_end_aligned >= _committed[ri].start()) && - (_committed[ri].start() > _committed[ind].start()), + // The prior check included in the assert + // (new_end_aligned >= _committed[ri].start()) + // is redundant with the "contains" test. + // Any region containing the new end + // should start at or beyond the region found (ind) + // for the new end (committed regions are not expected to + // be proper subsets of other committed regions). + assert(_committed[ri].start() >= _committed[ind].start(), "New end of committed region is inconsistent"); new_end_aligned = _committed[ri].start(); - assert(new_end_aligned > _committed[ind].start(), + // new_end_aligned can be equal to the start of its + // committed region (i.e., of "ind") if a second + // region following "ind" also start at the same location + // as "ind". + assert(new_end_aligned >= _committed[ind].start(), "New end of committed region is before start"); debug_only(collided = true;) // Should only collide with 1 region