< prev index next >

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

Print this page

10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 package nsk.share.gc;
25 
26 /**
27  *  An object that occupies approximately given number of bytes in memory.
28  */
29 public class MemoryObject {
30         private static int diff = (int) Memory.getObjectExtraSize();
31         private byte storage[];


32 
33         /**
34          *  Create an object that occupies given number of bytes.
35          *
36          *  @param size size
37          */
38         public MemoryObject(int size) {
39                 if (size > diff)
40                         storage = new byte[size - diff];
41         }
42 
43         public final byte[] getStorage() {
44                 return storage;





45         }
46 
47         public final int getSize() {
48                 return storage.length;
49         }
50 }

10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 
24 package nsk.share.gc;
25 
26 /**
27  *  An object that occupies approximately given number of bytes in memory.
28  */
29 public class MemoryObject {
30         private final static int diff = Memory.getObjectExtraSize() + Memory.getIntSize();
31         private final int size;
32         private final Object storage;
33 
34 
35         /**
36          *  Create an object that occupies given number of bytes.
37          *
38          *  @param size size
39          */
40         public MemoryObject(int size) {
41             if (size > diff) {
42                 int memory = (size - diff);
43                 if (Memory.isValhallaEnabled()) {
44                     storage = new Integer[Memory.getArrayLength(memory, Memory.getIntegerArrayElementSize())];
45                 } else {
46                     storage = new int[Memory.getArrayLength(memory, Memory.getIntSize())];
47                 }
48            } else {
49                 storage = new int[0];
50            }
51            this.size = size;
52         }
53 
54         public final int getSize() {
55                 return size;
56         }
57 }
< prev index next >