Skip to content

Commit 73c91ac

Browse files
committed
Remove generics.
1 parent e1d622b commit 73c91ac

File tree

2 files changed

+31
-21
lines changed

2 files changed

+31
-21
lines changed
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
import com.oracle.truffle.api.nodes.Node;
5353

5454
@MessageResolution(receiverType = CArrayWrapper.class)
55-
public class CStringWrapperMR {
55+
public class CArrayWrapperMR {
5656

5757
@Resolve(message = "READ")
5858
abstract static class ReadNode extends Node {
@@ -83,8 +83,8 @@ public byte access(CByteArrayWrapper object, int idx) {
8383
}
8484

8585
@Resolve(message = "HAS_SIZE")
86-
abstract static class HashSizeNode extends Node {
87-
boolean access(@SuppressWarnings("unused") CArrayWrapper<?> obj) {
86+
abstract static class HasSizeNode extends Node {
87+
boolean access(@SuppressWarnings("unused") CArrayWrapper obj) {
8888
return true;
8989
}
9090
}
@@ -102,7 +102,7 @@ int access(CByteArrayWrapper obj) {
102102

103103
@Resolve(message = "IS_POINTER")
104104
abstract static class IsPointerNode extends Node {
105-
boolean access(CArrayWrapper<?> obj) {
105+
boolean access(CArrayWrapper obj) {
106106
return obj.isNative();
107107
}
108108
}
@@ -111,7 +111,7 @@ boolean access(CArrayWrapper<?> obj) {
111111
abstract static class AsPointerNode extends Node {
112112
@Child private Node asPointerNode;
113113

114-
long access(CArrayWrapper<?> obj) {
114+
long access(CArrayWrapper obj) {
115115
// the native pointer object must either be a TruffleObject or a primitive
116116
Object nativePointer = obj.getNativePointer();
117117
if (nativePointer instanceof TruffleObject) {
@@ -134,7 +134,7 @@ long access(CArrayWrapper<?> obj) {
134134
abstract static class ToNativeNode extends Node {
135135
@Child private CExtNodes.AsCharPointer asCharPointerNode;
136136

137-
Object access(CArrayWrapper<?> obj) {
137+
Object access(CArrayWrapper obj) {
138138
if (!obj.isNative()) {
139139
if (asCharPointerNode == null) {
140140
CompilerDirectives.transferToInterpreterAndInvalidate();

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/CArrayWrappers.java

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,10 @@
4747
* {@code TO_NATIVE}. This is primarily necessary for {@code char*} arrays.
4848
*/
4949
public abstract class CArrayWrappers {
50-
public static class CArrayWrapper<T> implements TruffleObject {
5150

52-
private final T delegate;
53-
private Object nativePointer;
51+
public abstract static class CArrayWrapper implements TruffleObject {
5452

55-
public CArrayWrapper(T delegate) {
56-
this.delegate = delegate;
57-
}
58-
59-
public T getDelegate() {
60-
return delegate;
61-
}
53+
private Object nativePointer;
6254

6355
public Object getNativePointer() {
6456
return nativePointer;
@@ -73,12 +65,14 @@ public boolean isNative() {
7365
return nativePointer != null;
7466
}
7567

68+
public abstract Object getDelegate();
69+
7670
static boolean isInstance(TruffleObject o) {
7771
return o instanceof CArrayWrapper;
7872
}
7973

8074
public ForeignAccess getForeignAccess() {
81-
return CStringWrapperMRForeign.ACCESS;
75+
return CArrayWrapperMRForeign.ACCESS;
8276
}
8377
}
8478

@@ -88,21 +82,37 @@ public ForeignAccess getForeignAccess() {
8882
* object that wraps a Python unicode object, this wrapper let's a Java String look like a
8983
* {@code char*}.
9084
*/
91-
public static class CStringWrapper extends CArrayWrapper<String> {
85+
public static class CStringWrapper extends CArrayWrapper {
86+
87+
private final String delegate;
9288

9389
public CStringWrapper(String delegate) {
94-
super(delegate);
90+
this.delegate = delegate;
9591
}
92+
93+
@Override
94+
public String getDelegate() {
95+
return delegate;
96+
}
97+
9698
}
9799

98100
/**
99101
* A native wrapper for arbitrary byte arrays (i.e. the store of a Python Bytes object) to be
100102
* used like a {@code char*} pointer.
101103
*/
102-
public static class CByteArrayWrapper extends CArrayWrapper<byte[]> {
104+
public static class CByteArrayWrapper extends CArrayWrapper {
105+
106+
private final byte[] delegate;
103107

104108
public CByteArrayWrapper(byte[] delegate) {
105-
super(delegate);
109+
this.delegate = delegate;
106110
}
111+
112+
@Override
113+
public byte[] getDelegate() {
114+
return delegate;
115+
}
116+
107117
}
108118
}

0 commit comments

Comments
 (0)