Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions jcl/src/java.base/share/classes/jdk/internal/misc/Unsafe.java
Original file line number Diff line number Diff line change
Expand Up @@ -6929,14 +6929,14 @@ public int nullMarkerOffset(Field f) {
* Reports the kind of layout used for an element in the storage
* allocation of the given array.
*
* @param arrayClass array class to inspect
* @param array array to inspect
* @return layout kind of the array elements
*/
public int arrayLayout(Class<?> arrayClass) {
if (null == arrayClass) {
public int arrayLayout(Object[] array) {
if (null == array) {
throw new NullPointerException();
}
return isFlatArray(arrayClass) ? ARRAY_LAYOUT_FLATTENED : ARRAY_LAYOUT_REFERENCE;
return isFlatArray(array.getClass()) ? ARRAY_LAYOUT_FLATTENED : ARRAY_LAYOUT_REFERENCE;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ static public void testNonVTClzGetValue() throws Throwable {
@Test
static public void testGetValuesOfArray() throws Throwable {
if (isFlatteningEnabled) {
int layout = myUnsafe.arrayLayout(vtPointAry.getClass());
int layout = myUnsafe.arrayLayout(vtPointAry);
ValueTypePoint2D p = myUnsafe.getFlatValue(vtPointAry, vtPointAryOffset0, layout, ValueTypePoint2D.class);
assertEquals(p.x.i, vtPointAry[0].x.i);
assertEquals(p.y.i, vtPointAry[0].y.i);
Expand All @@ -304,7 +304,7 @@ static public void testGetValueOfZeroSizeVTArrayDoesNotCauseError() throws Throw
2,
new ZeroSizeValueType());
long zsvtAryOffset0 = myUnsafe.arrayBaseOffset(zsvtAry.getClass());
int layout = myUnsafe.arrayLayout(zsvtAry.getClass());
int layout = myUnsafe.arrayLayout(zsvtAry);
assertNotNull(myUnsafe.getFlatValue(zsvtAry, zsvtAryOffset0, layout, ZeroSizeValueType.class));
}
}
Expand Down Expand Up @@ -427,7 +427,7 @@ static public void testPutValueWithNonVTObj() throws Throwable {
static public void testPutValuesOfArray() throws Throwable {
if (isFlatteningEnabled) {
ValueTypePoint2D p = new ValueTypePoint2D(new ValueTypeInt(34857), new ValueTypeInt(784382));
int layout = myUnsafe.arrayLayout(vtPointAry.getClass());
int layout = myUnsafe.arrayLayout(vtPointAry);
myUnsafe.putFlatValue(vtPointAry, vtPointAryOffset0, layout, ValueTypePoint2D.class, p);
assertEquals(vtPointAry[0].x.i, p.x.i);
assertEquals(vtPointAry[0].y.i, p.y.i);
Expand All @@ -446,7 +446,7 @@ static public void testPutValueWithZeroSizeVTArrayDoesNotCauseError() throws Thr
2,
new ZeroSizeValueType());
long zsvtAryOffset0 = myUnsafe.arrayBaseOffset(zsvtAry.getClass());
int layout = myUnsafe.arrayLayout(zsvtAry.getClass());
int layout = myUnsafe.arrayLayout(zsvtAry);
myUnsafe.putFlatValue(zsvtAry, zsvtAryOffset0, layout, ZeroSizeValueType.class, new ZeroSizeValueType());
}
}
Expand Down Expand Up @@ -640,7 +640,7 @@ static public void testCompareAndSetArray0Success(CompareAndDoSomethingFunction
if (isFlatteningEnabled) {
int original = vtIntAry[0].i;
ValueTypeInt newVti = new ValueTypeInt(456);
int layout = myUnsafe.arrayLayout(vtIntAry.getClass());
int layout = myUnsafe.arrayLayout(vtIntAry);
boolean success = compareAndSwapValue.execute(vtIntAry, vtIntAryOffset0, layout, ValueTypeInt.class, vtIntAry[0], newVti);
assertEquals(newVti.i, 456);
assertTrue(success);
Expand All @@ -653,7 +653,7 @@ static public void testCompareAndSetArray1Success(CompareAndDoSomethingFunction
if (isFlatteningEnabled) {
int original = vtIntAry[1].i;
ValueTypeInt newVti = new ValueTypeInt(456);
int layout = myUnsafe.arrayLayout(vtIntAry.getClass());
int layout = myUnsafe.arrayLayout(vtIntAry);
boolean success = compareAndSwapValue.execute(vtIntAry, vtIntAryOffset1, layout, ValueTypeInt.class, vtIntAry[1], newVti);
assertEquals(newVti.i, 456);
assertTrue(success);
Expand All @@ -666,7 +666,7 @@ static public void testCompareAndSetArray0Failure(CompareAndDoSomethingFunction
if (isFlatteningEnabled) {
int original = vtIntAry[0].i;
ValueTypeInt newVti = new ValueTypeInt(328);
int layout = myUnsafe.arrayLayout(vtIntAry.getClass());
int layout = myUnsafe.arrayLayout(vtIntAry);
boolean success = compareAndSwapValue.execute(vtIntAry, vtIntAryOffset0, layout, ValueTypeInt.class, new ValueTypeInt(original + 1), newVti);
assertEquals(newVti.i, 328);
assertFalse(success);
Expand All @@ -679,7 +679,7 @@ static public void testCompareAndSetArray1Failure(CompareAndDoSomethingFunction
if (isFlatteningEnabled) {
int original = vtIntAry[1].i;
ValueTypeInt newVti = new ValueTypeInt(328);
int layout = myUnsafe.arrayLayout(vtIntAry.getClass());
int layout = myUnsafe.arrayLayout(vtIntAry);
boolean success = compareAndSwapValue.execute(vtIntAry, vtIntAryOffset1, layout, ValueTypeInt.class, new ValueTypeInt(original + 1), newVti);
assertEquals(newVti.i, 328);
assertFalse(success);
Expand Down Expand Up @@ -779,7 +779,7 @@ static public void testGetAndSetPointY() throws Throwable {
@Test
static public void testGetAndSetArray0() throws Throwable {
if (isFlatteningEnabled) {
int layout = myUnsafe.arrayLayout(vtIntAry.getClass());
int layout = myUnsafe.arrayLayout(vtIntAry);
int original = vtIntAry[0].i;
ValueTypeInt newVti = new ValueTypeInt(456);
Object result = myUnsafe.getAndSetFlatValue(vtIntAry, vtIntAryOffset0, layout, ValueTypeInt.class, newVti);
Expand All @@ -792,7 +792,7 @@ static public void testGetAndSetArray0() throws Throwable {
@Test
static public void testGetAndSetArray1() throws Throwable {
if (isFlatteningEnabled) {
int layout = myUnsafe.arrayLayout(vtIntAry.getClass());
int layout = myUnsafe.arrayLayout(vtIntAry);
int original = vtIntAry[1].i;
ValueTypeInt newVti = new ValueTypeInt(456);
Object result = myUnsafe.getAndSetFlatValue(vtIntAry, vtIntAryOffset1, layout, ValueTypeInt.class, newVti);
Expand Down