diff src/share/vm/memory/universe.cpp @ 976:1a81ea4b45d4

6869822: assert(Universe::narrow_oop_shift() == 0,"use unscaled narrow oop") Summary: Replace the assert with narrow_oop_shift set to 0. Reviewed-by: never, jcoomes
author kvn
date Fri, 14 Aug 2009 12:23:11 -0700
parents df6caf649ff7
children f334aec453a1
line wrap: on
line diff
--- a/src/share/vm/memory/universe.cpp	Fri Aug 14 00:02:12 2009 -0700
+++ b/src/share/vm/memory/universe.cpp	Fri Aug 14 12:23:11 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");
         }