Mercurial > hg > graal-compiler
diff src/share/vm/services/memPtr.cpp @ 6741:33143ee07800
7181995: NMT ON: NMT assertion failure assert(cur_vm->is_uncommit_record() || cur_vm->is_deallocation_record
Summary: Fixed virtual memory records merge and promotion logic, should be based on sequence number vs. base address order
Reviewed-by: coleenp, acorn
author | zgu |
---|---|
date | Tue, 11 Sep 2012 20:53:17 -0400 |
parents | e5bf1c79ed5b |
children | 716c64bda5ba |
line wrap: on
line diff
--- a/src/share/vm/services/memPtr.cpp Tue Sep 04 16:20:28 2012 -0700 +++ b/src/share/vm/services/memPtr.cpp Tue Sep 11 20:53:17 2012 -0400 @@ -43,9 +43,9 @@ bool VMMemRegion::contains(const VMMemRegion* mr) const { - assert(base() != 0, "no base address"); + assert(base() != 0, "Sanity check"); assert(size() != 0 || committed_size() != 0, - "no range"); + "Sanity check"); address base_addr = base(); address end_addr = base_addr + (is_reserve_record()? reserved_size(): committed_size()); @@ -61,14 +61,14 @@ return (mr->base() >= base_addr && (mr->base() + mr->committed_size()) <= end_addr); } else if (mr->is_type_tagging_record()) { - assert(mr->base() != 0, "no base"); - return mr->base() == base_addr; + assert(mr->base() != NULL, "Sanity check"); + return (mr->base() >= base_addr && mr->base() < end_addr); } else if (mr->is_release_record()) { assert(mr->base() != 0 && mr->size() > 0, "bad record"); return (mr->base() == base_addr && mr->size() == size()); } else { - assert(false, "what happened?"); + ShouldNotReachHere(); return false; } }