40 Test t = new Test(); |
40 Test t = new Test(); |
41 Object o = new Object(); |
41 Object o = new Object(); |
42 Field field = Test.class.getField("o"); |
42 Field field = Test.class.getField("o"); |
43 |
43 |
44 long offset = unsafe.objectFieldOffset(field); |
44 long offset = unsafe.objectFieldOffset(field); |
45 assertEquals(t.o, unsafe.getObject(t, offset)); |
45 assertEquals(t.o, unsafe.getReference(t, offset)); |
46 |
46 |
47 unsafe.putObject(t, offset, o); |
47 unsafe.putReference(t, offset, o); |
48 assertEquals(o, unsafe.getObject(t, offset)); |
48 assertEquals(o, unsafe.getReference(t, offset)); |
49 |
49 |
50 Object arrayObject[] = { unsafe, null, new Object() }; |
50 Object arrayObject[] = { unsafe, null, new Object() }; |
51 int scale = unsafe.arrayIndexScale(arrayObject.getClass()); |
51 int scale = unsafe.arrayIndexScale(arrayObject.getClass()); |
52 offset = unsafe.arrayBaseOffset(arrayObject.getClass()); |
52 offset = unsafe.arrayBaseOffset(arrayObject.getClass()); |
53 for (int i = 0; i < arrayObject.length; i++) { |
53 for (int i = 0; i < arrayObject.length; i++) { |
54 assertEquals(unsafe.getObject(arrayObject, offset), arrayObject[i]); |
54 assertEquals(unsafe.getReference(arrayObject, offset), arrayObject[i]); |
55 offset += scale; |
55 offset += scale; |
56 } |
56 } |
57 } |
57 } |
58 |
58 |
59 static class Test { |
59 static class Test { |