Skip to content

Commit f72e3b7

Browse files
committed
Move PyTruffle_Bytes_AsString to PythonCextBytesBuiltins
1 parent f2979c6 commit f72e3b7

File tree

3 files changed

+35
-33
lines changed

3 files changed

+35
-33
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltinRegistry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1592,7 +1592,7 @@ static CApiBuiltinNode createBuiltinNode(int id) {
15921592
case 216:
15931593
return com.oracle.graal.python.builtins.modules.cext.PythonCextBytesBuiltinsFactory.PyTruffle_ByteArray_EmptyWithCapacityNodeGen.create();
15941594
case 217:
1595-
return com.oracle.graal.python.builtins.modules.cext.PythonCextBuiltinsFactory.PyTruffle_Bytes_AsStringNodeGen.create();
1595+
return com.oracle.graal.python.builtins.modules.cext.PythonCextBytesBuiltinsFactory.PyTruffle_Bytes_AsStringNodeGen.create();
15961596
case 218:
15971597
return com.oracle.graal.python.builtins.modules.cext.PythonCextBytesBuiltinsFactory.PyTruffle_Bytes_CheckEmbeddedNullNodeGen.create();
15981598
case 219:

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBuiltins.java

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,6 @@
8484
import com.oracle.graal.python.builtins.modules.GraalPythonModuleBuiltins.DebugNode;
8585
import com.oracle.graal.python.builtins.modules.SysModuleBuiltins.GetFileSystemEncodingNode;
8686
import com.oracle.graal.python.builtins.objects.PNone;
87-
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
88-
import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject;
8987
import com.oracle.graal.python.builtins.objects.cext.PythonNativeClass;
9088
import com.oracle.graal.python.builtins.objects.cext.capi.CApiCodeGen;
9189
import com.oracle.graal.python.builtins.objects.cext.capi.CApiContext;
@@ -95,12 +93,10 @@
9593
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.AsCharPointerNode;
9694
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.ClearNativeWrapperNode;
9795
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.PCallCapiFunction;
98-
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.ToSulongNode;
9996
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.TransformExceptionToNativeNode;
10097
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodesFactory.TransformExceptionToNativeNodeGen;
10198
import com.oracle.graal.python.builtins.objects.cext.capi.ExternalFunctionNodes.PExternalFunctionWrapper;
10299
import com.oracle.graal.python.builtins.objects.cext.capi.NativeCAPISymbol;
103-
import com.oracle.graal.python.builtins.objects.cext.capi.NativeMember;
104100
import com.oracle.graal.python.builtins.objects.cext.capi.PyCFunctionDecorator;
105101
import com.oracle.graal.python.builtins.objects.cext.capi.PySequenceArrayWrapper;
106102
import com.oracle.graal.python.builtins.objects.cext.capi.PythonNativePointer;
@@ -111,7 +107,6 @@
111107
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.HandleReleaser;
112108
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.CApiTransitions.HandleTester;
113109
import com.oracle.graal.python.builtins.objects.cext.common.CArrayWrappers.CArrayWrapper;
114-
import com.oracle.graal.python.builtins.objects.cext.common.CArrayWrappers.CStringWrapper;
115110
import com.oracle.graal.python.builtins.objects.cext.common.CExtParseArgumentsNode;
116111
import com.oracle.graal.python.builtins.objects.cext.common.CExtParseArgumentsNode.SplitFormatStringNode;
117112
import com.oracle.graal.python.builtins.objects.cext.common.CExtToJavaNode;
@@ -150,7 +145,6 @@
150145
import com.oracle.graal.python.nodes.util.CannotCastException;
151146
import com.oracle.graal.python.nodes.util.CastToJavaIntExactNode;
152147
import com.oracle.graal.python.nodes.util.CastToJavaLongLossyNode;
153-
import com.oracle.graal.python.nodes.util.CastToTruffleStringNode;
154148
import com.oracle.graal.python.runtime.PythonContext;
155149
import com.oracle.graal.python.runtime.PythonContext.GetThreadStateNode;
156150
import com.oracle.graal.python.runtime.PythonOptions;
@@ -1105,32 +1099,6 @@ private static Object[] collect(MroSequenceStorage mro, int idx) {
11051099
}
11061100
}
11071101

1108-
@CApiBuiltin(ret = Pointer, args = {PyObject}, call = Ignored)
1109-
abstract static class PyTruffle_Bytes_AsString extends CApiUnaryBuiltinNode {
1110-
@Specialization
1111-
static Object doBytes(PBytes bytes) {
1112-
return new PySequenceArrayWrapper(bytes, 1);
1113-
}
1114-
1115-
@Specialization
1116-
static Object doUnicode(PString str,
1117-
@Cached CastToTruffleStringNode castToStringNode) {
1118-
return new CStringWrapper(castToStringNode.execute(str));
1119-
}
1120-
1121-
@Specialization
1122-
static Object doNative(PythonAbstractNativeObject obj,
1123-
@Cached ToSulongNode toSulong,
1124-
@Cached PCallCapiFunction callMemberGetterNode) {
1125-
return callMemberGetterNode.call(NativeMember.OB_SVAL.getGetterFunctionName(), toSulong.execute(obj));
1126-
}
1127-
1128-
@Fallback
1129-
Object doUnicode(Object o) {
1130-
throw raise(PythonErrorType.TypeError, ErrorMessages.EXPECTED_S_P_FOUND, "bytes", o);
1131-
}
1132-
}
1133-
11341102
@CApiBuiltin(ret = PyFrameObjectTransfer, args = {PyThreadState, PyCodeObject, PyObject, PyObject}, call = Direct)
11351103
abstract static class PyFrame_New extends CApiQuaternaryBuiltinNode {
11361104
@Specialization

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextBytesBuiltins.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.ConstCharPtrAsTruffleString;
5050
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.INT8_T_PTR;
5151
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Int;
52+
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Pointer;
5253
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObject;
5354
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.PyObjectTransfer;
5455
import static com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor.Py_ssize_t;
@@ -69,14 +70,20 @@
6970
import com.oracle.graal.python.builtins.objects.bytes.PByteArray;
7071
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
7172
import com.oracle.graal.python.builtins.objects.bytes.PBytesLike;
73+
import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject;
7274
import com.oracle.graal.python.builtins.objects.cext.capi.CApiGuards;
75+
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes;
7376
import com.oracle.graal.python.builtins.objects.cext.capi.CExtNodes.AsPythonObjectNode;
77+
import com.oracle.graal.python.builtins.objects.cext.capi.NativeMember;
78+
import com.oracle.graal.python.builtins.objects.cext.capi.PySequenceArrayWrapper;
7479
import com.oracle.graal.python.builtins.objects.cext.capi.PythonNativeWrapper;
7580
import com.oracle.graal.python.builtins.objects.cext.capi.transitions.ArgDescriptor;
81+
import com.oracle.graal.python.builtins.objects.cext.common.CArrayWrappers;
7682
import com.oracle.graal.python.builtins.objects.cext.common.CExtCommonNodes.GetByteArrayNode;
7783
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
7884
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemScalarNode;
7985
import com.oracle.graal.python.builtins.objects.ints.PInt;
86+
import com.oracle.graal.python.builtins.objects.str.PString;
8087
import com.oracle.graal.python.builtins.objects.str.StringBuiltins.EncodeNode;
8188
import com.oracle.graal.python.builtins.objects.str.StringBuiltins.ModNode;
8289
import com.oracle.graal.python.lib.PyNumberAsSizeNode;
@@ -88,6 +95,7 @@
8895
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
8996
import com.oracle.graal.python.nodes.object.InlinedGetClassNode;
9097
import com.oracle.graal.python.nodes.util.CastToByteNode;
98+
import com.oracle.graal.python.nodes.util.CastToTruffleStringNode;
9199
import com.oracle.graal.python.runtime.exception.PythonErrorType;
92100
import com.oracle.graal.python.runtime.sequence.storage.ByteSequenceStorage;
93101
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage;
@@ -382,4 +390,30 @@ static int doBytes(PBytes bytes,
382390
return 0;
383391
}
384392
}
393+
394+
@CApiBuiltin(ret = Pointer, args = {PyObject}, call = Ignored)
395+
abstract static class PyTruffle_Bytes_AsString extends CApiUnaryBuiltinNode {
396+
@Specialization
397+
static Object doBytes(PBytes bytes) {
398+
return new PySequenceArrayWrapper(bytes, 1);
399+
}
400+
401+
@Specialization
402+
static Object doUnicode(PString str,
403+
@Cached CastToTruffleStringNode castToStringNode) {
404+
return new CArrayWrappers.CStringWrapper(castToStringNode.execute(str));
405+
}
406+
407+
@Specialization
408+
static Object doNative(PythonAbstractNativeObject obj,
409+
@Cached CExtNodes.ToSulongNode toSulong,
410+
@Cached CExtNodes.PCallCapiFunction callMemberGetterNode) {
411+
return callMemberGetterNode.call(NativeMember.OB_SVAL.getGetterFunctionName(), toSulong.execute(obj));
412+
}
413+
414+
@Fallback
415+
Object doUnicode(Object o) {
416+
throw raise(PythonErrorType.TypeError, ErrorMessages.EXPECTED_S_P_FOUND, "bytes", o);
417+
}
418+
}
385419
}

0 commit comments

Comments
 (0)