< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/share/gc/MemoryObject.java

Print this page
@@ -25,26 +25,33 @@
  
  /**
   *  An object that occupies approximately given number of bytes in memory.
   */
  public class MemoryObject {
-         private static int diff = (int) Memory.getObjectExtraSize();
-         private byte storage[];
+         private final static int diff = Memory.getObjectExtraSize() + Memory.getIntSize();
+         private final int size;
+         private final Object storage;
+ 
  
          /**
           *  Create an object that occupies given number of bytes.
           *
           *  @param size size
           */
          public MemoryObject(int size) {
-                 if (size > diff)
-                         storage = new byte[size - diff];
-         }
- 
-         public final byte[] getStorage() {
-                 return storage;
+             if (size > diff) {
+                 int memory = (size - diff);
+                 if (Memory.isValhallaEnabled()) {
+                     storage = new Integer[Memory.getArrayLength(memory, Memory.getIntegerArrayElementSize())];
+                 } else {
+                     storage = new int[Memory.getArrayLength(memory, Memory.getIntSize())];
+                 }
+            } else {
+                 storage = new int[0];
+            }
+            this.size = size;
          }
  
          public final int getSize() {
-                 return storage.length;
+                 return size;
          }
  }
< prev index next >