< prev index next >

test/micro/org/openjdk/bench/java/lang/foreign/pointers/Pointer.java

Print this page

61     public X get(NativeType<X> type, long offset) {
62         if (type instanceof NativeType.OfInt intType) {
63             return (X) (Object) get(intType, offset);
64         } else if (type instanceof NativeType.OfDouble doubleType) {
65             return (X) (Object) get(doubleType, offset);
66         } else {
67             throw new UnsupportedOperationException();
68         }
69     }
70 
71     public MemorySegment segment() {
72         return segment;
73     }
74 
75     public static <X> Pointer<X> allocate(NativeType<X> type, SegmentAllocator allocator) {
76         MemorySegment segment = allocator.allocate(type.layout());
77         return new Pointer<>(segment);
78     }
79 
80     public static <X> Pointer<X> allocate(NativeType<X> type, long size, SegmentAllocator allocator) {
81         MemorySegment segment = allocator.allocateArray(type.layout(), size);
82         return new Pointer<>(segment);
83     }
84 
85     public static <X> Pointer<X> wrap(NativeType<X> type, MemorySegment segment) {
86         return new Pointer<>(segment);
87     }
88 }

61     public X get(NativeType<X> type, long offset) {
62         if (type instanceof NativeType.OfInt intType) {
63             return (X) (Object) get(intType, offset);
64         } else if (type instanceof NativeType.OfDouble doubleType) {
65             return (X) (Object) get(doubleType, offset);
66         } else {
67             throw new UnsupportedOperationException();
68         }
69     }
70 
71     public MemorySegment segment() {
72         return segment;
73     }
74 
75     public static <X> Pointer<X> allocate(NativeType<X> type, SegmentAllocator allocator) {
76         MemorySegment segment = allocator.allocate(type.layout());
77         return new Pointer<>(segment);
78     }
79 
80     public static <X> Pointer<X> allocate(NativeType<X> type, long size, SegmentAllocator allocator) {
81         MemorySegment segment = allocator.allocate(type.layout(), size);
82         return new Pointer<>(segment);
83     }
84 
85     public static <X> Pointer<X> wrap(NativeType<X> type, MemorySegment segment) {
86         return new Pointer<>(segment);
87     }
88 }
< prev index next >