< prev index next >

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

Print this page
*** 25,26 ***
  
  /**
   *  An object that occupies approximately given number of bytes in memory.
   */
  public class MemoryObject {
!         private static int diff = (int) Memory.getObjectExtraSize();
!         private byte 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;
          }
  
          public final int getSize() {
!                 return storage.length;
          }
  }
--- 25,33 ---
  
  /**
   *  An object that occupies approximately given number of bytes in memory.
   */
  public class MemoryObject {
!         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) {
!                 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 size;
          }
  }
< prev index next >