# HG changeset patch # User never # Date 1250313078 25200 # Node ID 7c14587118b302037532641582e2985f221487b0 # Parent 55784fd95fe3523847f8fa4d31697f0cd14a3033# Parent 1a81ea4b45d46ad9ac848137ed87a02aa0f71a3f Merge diff -r 55784fd95fe3 -r 7c14587118b3 src/share/vm/memory/universe.cpp --- a/src/share/vm/memory/universe.cpp Fri Aug 14 15:55:26 2009 -0700 +++ b/src/share/vm/memory/universe.cpp Fri Aug 14 22:11:18 2009 -0700 @@ -749,7 +749,10 @@ assert(mode == UnscaledNarrowOop || mode == ZeroBasedNarrowOop || mode == HeapBasedNarrowOop, "mode is invalid"); - + // Return specified base for the first request. + if (!FLAG_IS_DEFAULT(HeapBaseMinAddress) && (mode == UnscaledNarrowOop)) { + return (char*)HeapBaseMinAddress; + } const size_t total_size = heap_size + HeapBaseMinAddress; if (total_size <= OopEncodingHeapMax && (mode != HeapBasedNarrowOop)) { if (total_size <= NarrowOopHeapMax && (mode == UnscaledNarrowOop) && @@ -857,7 +860,7 @@ // Can't reserve heap below 4Gb. Universe::set_narrow_oop_shift(LogMinObjAlignmentInBytes); } else { - assert(Universe::narrow_oop_shift() == 0, "use unscaled narrow oop"); + Universe::set_narrow_oop_shift(0); if (PrintCompressedOopsMode) { tty->print(", 32-bits Oops"); }