Skip to content

Commit b2e91a6

Browse files
committed
Fix: initialize node.
1 parent 10fc0b7 commit b2e91a6

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
import com.oracle.graal.python.builtins.objects.bytes.PBytes;
7171
import com.oracle.graal.python.builtins.objects.bytes.PIBytesLike;
7272
import com.oracle.graal.python.builtins.objects.common.SequenceNodes.LenNode;
73+
import com.oracle.graal.python.builtins.objects.common.SequenceNodes;
7374
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes;
7475
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.GetItemNode;
7576
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.ToByteArrayNode;
@@ -932,7 +933,7 @@ Object utimeError(Object path, Object times, Object ns, Object dir_fd, Object fo
932933
}
933934

934935
private long getTime(PTuple times, int index, String argname) {
935-
if (lenNode.execute(times) <= index) {
936+
if (getLength(times) <= index) {
936937
throw tupleError(argname);
937938
}
938939
if (getItemNode == null) {
@@ -979,6 +980,14 @@ private void setAtime(String path, long mtime) {
979980
} catch (IOException e) {
980981
}
981982
}
983+
984+
private int getLength(PTuple times) {
985+
if (lenNode == null) {
986+
CompilerDirectives.transferToInterpreterAndInvalidate();
987+
lenNode = insert(SequenceNodes.LenNode.create());
988+
}
989+
return lenNode.execute(times);
990+
}
982991
}
983992

984993
// FIXME: this is not nearly ready, just good enough for now

0 commit comments

Comments
 (0)