8065570: (bf spec) ByteBuffer.slice() should make it clear that the initial order is BIG_ENDIAN

Refine documentation of allocate*(), wrap(), slice(), duplicate(), asReadOnlyBuffer(), and as{Type}Buffer() to explcitly state the byte order of the created buffer.

Reviewed-by: alanb
This commit is contained in:
Brian Burkhalter 2015-07-15 10:43:07 -07:00
parent 44db4a2bcb
commit 0ee4830a94
11 changed files with 540 additions and 34 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -119,9 +119,10 @@ class XXX {
*
* <p> The new buffer's position will be zero, its capacity and its limit
* will be the number of bytes remaining in this buffer divided by
* $nbytes$, and its mark will be undefined. The new buffer will be direct
* if, and only if, this buffer is direct, and it will be read-only if, and
* only if, this buffer is read-only. </p>
* $nbytes$, its mark will be undefined, and its byte order will be that
* of the byte buffer at the moment the view is created. The new buffer
* will be direct if, and only if, this buffer is direct, and it will be
* read-only if, and only if, this buffer is read-only. </p>
*
* @return A new $type$ buffer
*/

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -295,8 +295,9 @@ public abstract class $Type$Buffer
* Allocates a new direct $type$ buffer.
*
* <p> The new buffer's position will be zero, its limit will be its
* capacity, its mark will be undefined, and each of its elements will be
* initialized to zero. Whether or not it has a
* capacity, its mark will be undefined, each of its elements will be
* initialized to zero, and its byte order will be
* {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}. Whether or not it has a
* {@link #hasArray backing array} is unspecified.
*
* @param capacity
@ -317,9 +318,16 @@ public abstract class $Type$Buffer
* Allocates a new $type$ buffer.
*
* <p> The new buffer's position will be zero, its limit will be its
* capacity, its mark will be undefined, and each of its elements will be
* initialized to zero. It will have a {@link #array backing array},
* and its {@link #arrayOffset array offset} will be zero.
* capacity, its mark will be undefined, each of its elements will be
* initialized to zero, and its byte order will be
#if[byte]
* {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
#else[byte]
* the {@link ByteOrder#nativeOrder native order} of the underlying
* hardware.
#end[byte]
* It will have a {@link #array backing array}, and its
* {@link #arrayOffset array offset} will be zero.
*
* @param capacity
* The new buffer's capacity, in $type$s
@ -342,8 +350,15 @@ public abstract class $Type$Buffer
* that is, modifications to the buffer will cause the array to be modified
* and vice versa. The new buffer's capacity will be
* <tt>array.length</tt>, its position will be <tt>offset</tt>, its limit
* will be <tt>offset + length</tt>, and its mark will be undefined. Its
* {@link #array backing array} will be the given array, and
* will be <tt>offset + length</tt>, its mark will be undefined, and its
* byte order will be
#if[byte]
* {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
#else[byte]
* the {@link ByteOrder#nativeOrder native order} of the underlying
* hardware.
#end[byte]
* Its {@link #array backing array} will be the given array, and
* its {@link #arrayOffset array offset} will be zero. </p>
*
* @param array
@ -382,10 +397,16 @@ public abstract class $Type$Buffer
* <p> The new buffer will be backed by the given $type$ array;
* that is, modifications to the buffer will cause the array to be modified
* and vice versa. The new buffer's capacity and limit will be
* <tt>array.length</tt>, its position will be zero, and its mark will be
* undefined. Its {@link #array backing array} will be the
* given array, and its {@link #arrayOffset array offset} will
* be zero. </p>
* <tt>array.length</tt>, its position will be zero, its mark will be
* undefined, and its byte order will be
#if[byte]
* {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
#else[byte]
* the {@link ByteOrder#nativeOrder native order} of the underlying
* hardware.
#end[byte]
* Its {@link #array backing array} will be the given array, and its
* {@link #arrayOffset array offset} will be zero. </p>
*
* @param array
* The array that will back this buffer
@ -499,10 +520,15 @@ public abstract class $Type$Buffer
* values will be independent.
*
* <p> The new buffer's position will be zero, its capacity and its limit
* will be the number of $type$s remaining in this buffer, and its mark
* will be undefined. The new buffer will be direct if, and only if, this
* buffer is direct, and it will be read-only if, and only if, this buffer
* is read-only. </p>
* will be the number of $type$s remaining in this buffer, its mark will be
* undefined, and its byte order will be
#if[byte]
* {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
#else[byte]
* identical to that of this buffer.
#end[byte]
* The new buffer will be direct if, and only if, this buffer is direct, and
* it will be read-only if, and only if, this buffer is read-only. </p>
*
* @return The new $type$ buffer
*/
@ -516,10 +542,15 @@ public abstract class $Type$Buffer
* versa; the two buffers' position, limit, and mark values will be
* independent.
*
* <p> The new buffer's capacity, limit, position, and mark values will be
* identical to those of this buffer. The new buffer will be direct if,
* and only if, this buffer is direct, and it will be read-only if, and
* only if, this buffer is read-only. </p>
* <p> The new buffer's capacity, limit, position,
#if[byte]
* and mark values will be identical to those of this buffer, and its byte
* order will be {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
#else[byte]
* mark values, and byte order will be identical to those of this buffer.
#end[byte]
* The new buffer will be direct if, and only if, this buffer is direct, and
* it will be read-only if, and only if, this buffer is read-only. </p>
*
* @return The new $type$ buffer
*/
@ -535,8 +566,13 @@ public abstract class $Type$Buffer
* content to be modified. The two buffers' position, limit, and mark
* values will be independent.
*
* <p> The new buffer's capacity, limit, position, and mark values will be
* identical to those of this buffer.
* <p> The new buffer's capacity, limit, position,
#if[byte]
* and mark values will be identical to those of this buffer, and its byte
* order will be {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}.
#else[byte]
* mark values, and byte order will be identical to those of this buffer.
#end[byte]
*
* <p> If this buffer is itself read-only then this method behaves in
* exactly the same way as the {@link #duplicate duplicate} method. </p>

View File

@ -0,0 +1,59 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* Type-specific source code for unit test
*
* Regenerate the OrderX classes via genOrder.sh whenever this file changes.
* We check in the generated source files so that the test tree can be used
* independently of the rest of the source tree.
*/
#warn This file is preprocessed before being compiled
import java.nio.*;
public class Order$Type$ extends Order {
private static void ck$Type$Buffer($Type$Buffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
}
static void ck$Type$Buffer() {
$type$[] array = new $type$[LENGTH];
$Type$Buffer buf = $Type$Buffer.wrap(array);
ck(buf.order(), nord);
ck$Type$Buffer(buf, nord);
buf = $Type$Buffer.wrap(array, LENGTH/2, LENGTH/2);
ck(buf.order(), nord);
ck$Type$Buffer(buf, nord);
buf = $Type$Buffer.allocate(LENGTH);
ck(buf.order(), nord);
ck$Type$Buffer(buf, nord);
ck$Type$Buffer(ByteBuffer.allocate(LENGTH).as$Type$Buffer(), be);
ck$Type$Buffer(ByteBuffer.allocateDirect(LENGTH).as$Type$Buffer(), be);
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -22,10 +22,10 @@
*/
/* @test
* @bug 8065570
* @summary Unit test for X-Buffer.order methods
*/
import java.io.*;
import java.nio.*;
@ -35,6 +35,8 @@ public class Order {
static final ByteOrder le = ByteOrder.LITTLE_ENDIAN;
static final ByteOrder nord = ByteOrder.nativeOrder();
protected static final int LENGTH = 16;
static void ck(ByteOrder ord, ByteOrder expected) {
if (ord != expected)
throw new RuntimeException("Got " + ord
@ -55,18 +57,33 @@ public class Order {
ckViews(bb, be);
bb.order(le);
ckViews(bb, le);
if (bb.hasArray()) {
byte[] array = bb.array();
ck(ByteBuffer.wrap(array, LENGTH/2, LENGTH/2).order(), be);
ck(ByteBuffer.wrap(array).order(), be);
ck(bb.asReadOnlyBuffer().order(), be);
ck(bb.duplicate().order(), be);
ck(bb.slice().order(), be);
}
}
public static void main(String args[]) throws Exception {
ck(ByteBuffer.allocate(10).order(), be);
ck(ByteBuffer.allocateDirect(10).order(), be);
ck(ByteBuffer.allocate(10).order(be).order(), be);
ck(ByteBuffer.allocate(10).order(le).order(), le);
ck(ByteBuffer.allocate(LENGTH).order(), be);
ck(ByteBuffer.allocateDirect(LENGTH).order(), be);
ck(ByteBuffer.allocate(LENGTH).order(be).order(), be);
ck(ByteBuffer.allocate(LENGTH).order(le).order(), le);
ckByteBuffer(ByteBuffer.allocate(10));
ckByteBuffer(ByteBuffer.allocateDirect(10));
ckByteBuffer(ByteBuffer.allocate(LENGTH));
ckByteBuffer(ByteBuffer.allocateDirect(LENGTH));
OrderChar.ckCharBuffer();
OrderShort.ckShortBuffer();
OrderInt.ckIntBuffer();
OrderLong.ckLongBuffer();
OrderFloat.ckFloatBuffer();
OrderDouble.ckDoubleBuffer();
}
}

View File

@ -0,0 +1,59 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* Type-specific source code for unit test
*
* Regenerate the OrderX classes via genOrder.sh whenever this file changes.
* We check in the generated source files so that the test tree can be used
* independently of the rest of the source tree.
*/
// -- This file was mechanically generated: Do not edit! -- //
import java.nio.*;
public class OrderChar extends Order {
private static void ckCharBuffer(CharBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
}
static void ckCharBuffer() {
char[] array = new char[LENGTH];
CharBuffer buf = CharBuffer.wrap(array);
ck(buf.order(), nord);
ckCharBuffer(buf, nord);
buf = CharBuffer.wrap(array, LENGTH/2, LENGTH/2);
ck(buf.order(), nord);
ckCharBuffer(buf, nord);
buf = CharBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckCharBuffer(buf, nord);
ckCharBuffer(ByteBuffer.allocate(LENGTH).asCharBuffer(), be);
ckCharBuffer(ByteBuffer.allocateDirect(LENGTH).asCharBuffer(), be);
}
}

View File

@ -0,0 +1,59 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* Type-specific source code for unit test
*
* Regenerate the OrderX classes via genOrder.sh whenever this file changes.
* We check in the generated source files so that the test tree can be used
* independently of the rest of the source tree.
*/
// -- This file was mechanically generated: Do not edit! -- //
import java.nio.*;
public class OrderDouble extends Order {
private static void ckDoubleBuffer(DoubleBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
}
static void ckDoubleBuffer() {
double[] array = new double[LENGTH];
DoubleBuffer buf = DoubleBuffer.wrap(array);
ck(buf.order(), nord);
ckDoubleBuffer(buf, nord);
buf = DoubleBuffer.wrap(array, LENGTH/2, LENGTH/2);
ck(buf.order(), nord);
ckDoubleBuffer(buf, nord);
buf = DoubleBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckDoubleBuffer(buf, nord);
ckDoubleBuffer(ByteBuffer.allocate(LENGTH).asDoubleBuffer(), be);
ckDoubleBuffer(ByteBuffer.allocateDirect(LENGTH).asDoubleBuffer(), be);
}
}

View File

@ -0,0 +1,59 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* Type-specific source code for unit test
*
* Regenerate the OrderX classes via genOrder.sh whenever this file changes.
* We check in the generated source files so that the test tree can be used
* independently of the rest of the source tree.
*/
// -- This file was mechanically generated: Do not edit! -- //
import java.nio.*;
public class OrderFloat extends Order {
private static void ckFloatBuffer(FloatBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
}
static void ckFloatBuffer() {
float[] array = new float[LENGTH];
FloatBuffer buf = FloatBuffer.wrap(array);
ck(buf.order(), nord);
ckFloatBuffer(buf, nord);
buf = FloatBuffer.wrap(array, LENGTH/2, LENGTH/2);
ck(buf.order(), nord);
ckFloatBuffer(buf, nord);
buf = FloatBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckFloatBuffer(buf, nord);
ckFloatBuffer(ByteBuffer.allocate(LENGTH).asFloatBuffer(), be);
ckFloatBuffer(ByteBuffer.allocateDirect(LENGTH).asFloatBuffer(), be);
}
}

View File

@ -0,0 +1,59 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* Type-specific source code for unit test
*
* Regenerate the OrderX classes via genOrder.sh whenever this file changes.
* We check in the generated source files so that the test tree can be used
* independently of the rest of the source tree.
*/
// -- This file was mechanically generated: Do not edit! -- //
import java.nio.*;
public class OrderInt extends Order {
private static void ckIntBuffer(IntBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
}
static void ckIntBuffer() {
int[] array = new int[LENGTH];
IntBuffer buf = IntBuffer.wrap(array);
ck(buf.order(), nord);
ckIntBuffer(buf, nord);
buf = IntBuffer.wrap(array, LENGTH/2, LENGTH/2);
ck(buf.order(), nord);
ckIntBuffer(buf, nord);
buf = IntBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckIntBuffer(buf, nord);
ckIntBuffer(ByteBuffer.allocate(LENGTH).asIntBuffer(), be);
ckIntBuffer(ByteBuffer.allocateDirect(LENGTH).asIntBuffer(), be);
}
}

View File

@ -0,0 +1,59 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* Type-specific source code for unit test
*
* Regenerate the OrderX classes via genOrder.sh whenever this file changes.
* We check in the generated source files so that the test tree can be used
* independently of the rest of the source tree.
*/
// -- This file was mechanically generated: Do not edit! -- //
import java.nio.*;
public class OrderLong extends Order {
private static void ckLongBuffer(LongBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
}
static void ckLongBuffer() {
long[] array = new long[LENGTH];
LongBuffer buf = LongBuffer.wrap(array);
ck(buf.order(), nord);
ckLongBuffer(buf, nord);
buf = LongBuffer.wrap(array, LENGTH/2, LENGTH/2);
ck(buf.order(), nord);
ckLongBuffer(buf, nord);
buf = LongBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckLongBuffer(buf, nord);
ckLongBuffer(ByteBuffer.allocate(LENGTH).asLongBuffer(), be);
ckLongBuffer(ByteBuffer.allocateDirect(LENGTH).asLongBuffer(), be);
}
}

View File

@ -0,0 +1,59 @@
/*
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/* Type-specific source code for unit test
*
* Regenerate the OrderX classes via genOrder.sh whenever this file changes.
* We check in the generated source files so that the test tree can be used
* independently of the rest of the source tree.
*/
// -- This file was mechanically generated: Do not edit! -- //
import java.nio.*;
public class OrderShort extends Order {
private static void ckShortBuffer(ShortBuffer buf, ByteOrder expected) {
ck(buf.asReadOnlyBuffer().order(), expected);
ck(buf.duplicate().order(), expected);
ck(buf.slice().order(), expected);
}
static void ckShortBuffer() {
short[] array = new short[LENGTH];
ShortBuffer buf = ShortBuffer.wrap(array);
ck(buf.order(), nord);
ckShortBuffer(buf, nord);
buf = ShortBuffer.wrap(array, LENGTH/2, LENGTH/2);
ck(buf.order(), nord);
ckShortBuffer(buf, nord);
buf = ShortBuffer.allocate(LENGTH);
ck(buf.order(), nord);
ckShortBuffer(buf, nord);
ckShortBuffer(ByteBuffer.allocate(LENGTH).asShortBuffer(), be);
ckShortBuffer(ByteBuffer.allocateDirect(LENGTH).asShortBuffer(), be);
}
}

View File

@ -0,0 +1,39 @@
#! /bin/sh
#
# Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
javac -d . ../../../../make/src/classes/build/tools/spp/Spp.java > Spp.java
gen() {
java build.tools.spp.Spp -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3<Order-X.java.template >Order$2.java
}
gen char Char Character
gen short Short Short
gen int Int Integer
gen long Long Long
gen float Float Float
gen double Double Double
rm -rf build