Skip to content

Commit ae5c59c

Browse files
committed
Path converter accepts only bytes, not all bytes-like objects
1 parent ffb88af commit ae5c59c

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
import com.oracle.graal.python.builtins.objects.bytes.BytesNodes;
5656
import com.oracle.graal.python.builtins.objects.bytes.BytesUtils;
5757
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
58-
import com.oracle.graal.python.builtins.objects.bytes.PBytesLike;
5958
import com.oracle.graal.python.builtins.objects.common.SequenceNodes.LenNode;
6059
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
6160
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemNode;
@@ -2387,7 +2386,7 @@ PosixFileHandle doUnicode(PString value,
23872386
}
23882387

23892388
@Specialization
2390-
PosixFileHandle doBytes(PBytesLike value,
2389+
PosixFileHandle doBytes(PBytes value,
23912390
@Cached BytesNodes.ToBytesNode toByteArrayNode,
23922391
@CachedLibrary("getPosixSupport()") PosixSupportLibrary posixLib) {
23932392
return new PosixPath(value, checkPath(posixLib.createPathFromBytes(getPosixSupport(), toByteArrayNode.execute(value))), true);
@@ -2443,7 +2442,7 @@ PosixFileHandle doGeneric(VirtualFrame frame, Object value,
24432442
}
24442443

24452444
protected boolean isHandled(Object value) {
2446-
return PGuards.isPNone(value) && nullable || PGuards.canBeInteger(value) && allowFd || PGuards.isString(value) || PGuards.isBytes(value);
2445+
return PGuards.isPNone(value) && nullable || PGuards.canBeInteger(value) && allowFd || PGuards.isString(value) || PGuards.isPBytes(value);
24472446
}
24482447

24492448
private String getAllowedTypes() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/PGuards.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import com.oracle.graal.python.builtins.objects.PNone;
4646
import com.oracle.graal.python.builtins.objects.PythonAbstractObject;
4747
import com.oracle.graal.python.builtins.objects.array.PArray;
48+
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
4849
import com.oracle.graal.python.builtins.objects.bytes.PBytesLike;
4950
import com.oracle.graal.python.builtins.objects.cext.PythonNativeClass;
5051
import com.oracle.graal.python.builtins.objects.cext.PythonNativeObject;
@@ -415,6 +416,10 @@ public static boolean isBytes(Object obj) {
415416
return obj instanceof PBytesLike;
416417
}
417418

419+
public static boolean isPBytes(Object obj) {
420+
return obj instanceof PBytes;
421+
}
422+
418423
public static boolean isArray(Object obj) {
419424
return obj instanceof PArray;
420425
}

0 commit comments

Comments
 (0)