Skip to content

Commit 847bc3f

Browse files
committed
_socket builtin: add missing default args specializations
1 parent aa4d9e2 commit 847bc3f

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/SocketModuleBuiltins.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0
@@ -49,6 +49,7 @@
4949
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
5050
import com.oracle.graal.python.builtins.PythonBuiltins;
5151
import com.oracle.graal.python.builtins.objects.PNone;
52+
import com.oracle.graal.python.builtins.objects.socket.PSocket;
5253
import com.oracle.graal.python.builtins.objects.type.PythonClass;
5354
import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
5455
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
@@ -69,8 +70,27 @@ protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFa
6970
@Builtin(name = "socket", minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 5, keywordArguments = {"family", "type", "proto", "fileno"}, constructsClass = PythonBuiltinClassType.PSocket)
7071
@GenerateNodeFactory
7172
public abstract static class SocketNode extends PythonBuiltinNode {
73+
@Specialization
74+
Object socket(PythonClass cls, @SuppressWarnings("unused") PNone family, @SuppressWarnings("unused") PNone type, @SuppressWarnings("unused") PNone proto, @SuppressWarnings("unused") PNone fileno) {
75+
return createSocketInternal(cls, PSocket.AF_INET, PSocket.SOCK_STREAM, 0);
76+
}
77+
78+
@Specialization
79+
Object socket(PythonClass cls, int family, @SuppressWarnings("unused") PNone type, @SuppressWarnings("unused") PNone proto, @SuppressWarnings("unused") PNone fileno) {
80+
return createSocketInternal(cls, family, PSocket.SOCK_STREAM, 0);
81+
}
82+
83+
@Specialization
84+
Object socket(PythonClass cls, int family, int type, @SuppressWarnings("unused") PNone proto, @SuppressWarnings("unused") PNone fileno) {
85+
return createSocketInternal(cls, family, type, 0);
86+
}
87+
7288
@Specialization
7389
Object socket(PythonClass cls, int family, int type, int proto, @SuppressWarnings("unused") PNone fileno) {
90+
return createSocketInternal(cls, family, type, proto);
91+
}
92+
93+
private Object createSocketInternal(PythonClass cls, int family, int type, int proto) {
7494
if (getContext().getEnv().isNativeAccessAllowed()) {
7595
return factory().createSocket(cls, family, type, proto);
7696
} else {

0 commit comments

Comments
 (0)