Skip to content

Commit f455e82

Browse files
committed
socket builtins
1 parent a5d52a6 commit f455e82

File tree

1 file changed

+5
-3
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/socket

1 file changed

+5
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/socket/SocketBuiltins.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@
6464
import com.oracle.graal.python.builtins.objects.common.SequenceNodes.GetObjectArrayNode;
6565
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
6666
import com.oracle.graal.python.builtins.objects.exception.OSErrorEnum;
67+
import com.oracle.graal.python.builtins.objects.function.PArguments;
6768
import com.oracle.graal.python.builtins.objects.memoryview.PMemoryView;
69+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
6870
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
6971
import com.oracle.graal.python.nodes.call.special.LookupAndCallTernaryNode;
7072
import com.oracle.graal.python.nodes.call.special.LookupAndCallUnaryNode;
@@ -73,7 +75,6 @@
7375
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
7476
import com.oracle.graal.python.nodes.function.builtins.PythonTernaryBuiltinNode;
7577
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
76-
import com.oracle.graal.python.nodes.util.CastToIndexNode;
7778
import com.oracle.graal.python.runtime.sequence.storage.ByteSequenceStorage;
7879
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage;
7980
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
@@ -82,6 +83,7 @@
8283
import com.oracle.truffle.api.dsl.NodeFactory;
8384
import com.oracle.truffle.api.dsl.Specialization;
8485
import com.oracle.truffle.api.frame.VirtualFrame;
86+
import com.oracle.truffle.api.library.CachedLibrary;
8587
import com.oracle.truffle.api.profiles.ConditionProfile;
8688

8789
@CoreFunctions(extendClasses = PythonBuiltinClassType.PSocket)
@@ -375,10 +377,10 @@ protected static SequenceStorageNodes.SetItemNode createSetItem() {
375377
@Specialization
376378
Object recvInto(VirtualFrame frame, PSocket socket, PMemoryView buffer, Object flags,
377379
@Cached("createBinaryProfile()") ConditionProfile byteStorage,
378-
@Cached CastToIndexNode cast,
380+
@CachedLibrary(limit = "getCallSiteInlineCacheMaxDepth()") PythonObjectLibrary lib,
379381
@Cached("create(__LEN__)") LookupAndCallUnaryNode callLen,
380382
@Cached("create(__SETITEM__)") LookupAndCallTernaryNode setItem) {
381-
int bufferLen = cast.execute(frame, callLen.executeObject(frame, buffer));
383+
int bufferLen = lib.asIndexWithState(callLen.executeObject(frame, buffer), PArguments.getThreadState(frame));
382384
byte[] targetBuffer = new byte[bufferLen];
383385
ByteBuffer byteBuffer = ByteBuffer.wrap(targetBuffer);
384386
int length;

0 commit comments

Comments
 (0)