Skip to content

Commit cf4ad2b

Browse files
committed
Null values when shrinking native storage
1 parent 713eb79 commit cf4ad2b

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/common/SequenceStorageNodes.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2018, 2024, Oracle and/or its affiliates.
2+
* Copyright (c) 2018, 2025, Oracle and/or its affiliates.
33
* Copyright (c) 2013, Regents of the University of California
44
*
55
* All rights reserved.
@@ -124,15 +124,15 @@
124124
import com.oracle.graal.python.runtime.sequence.storage.LongSequenceStorage;
125125
import com.oracle.graal.python.runtime.sequence.storage.MroSequenceStorage;
126126
import com.oracle.graal.python.runtime.sequence.storage.NativeByteSequenceStorage;
127+
import com.oracle.graal.python.runtime.sequence.storage.NativeIntSequenceStorage;
127128
import com.oracle.graal.python.runtime.sequence.storage.NativeObjectSequenceStorage;
129+
import com.oracle.graal.python.runtime.sequence.storage.NativePrimitiveSequenceStorage;
128130
import com.oracle.graal.python.runtime.sequence.storage.NativeSequenceStorage;
129131
import com.oracle.graal.python.runtime.sequence.storage.ObjectSequenceStorage;
130132
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage;
131133
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage.StorageType;
132134
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorageFactory;
133135
import com.oracle.graal.python.runtime.sequence.storage.SequenceStoreException;
134-
import com.oracle.graal.python.runtime.sequence.storage.NativePrimitiveSequenceStorage;
135-
import com.oracle.graal.python.runtime.sequence.storage.NativeIntSequenceStorage;
136136
import com.oracle.graal.python.util.BiFunction;
137137
import com.oracle.graal.python.util.OverflowException;
138138
import com.oracle.graal.python.util.PythonUtils;
@@ -167,6 +167,7 @@
167167
import com.oracle.truffle.api.profiles.InlinedExactClassProfile;
168168
import com.oracle.truffle.api.profiles.InlinedLoopConditionProfile;
169169
import com.oracle.truffle.api.strings.TruffleString;
170+
170171
import sun.misc.Unsafe;
171172

172173
public abstract class SequenceStorageNodes {
@@ -3492,12 +3493,14 @@ public abstract static class SetNativeLenNode extends Node {
34923493
static void doShrink(NativeObjectSequenceStorage s, int len,
34933494
@Bind("this") Node inliningTarget,
34943495
@Cached CStructAccess.ReadPointerNode readNode,
3496+
@Cached CStructAccess.WritePointerNode writeNode,
34953497
@Cached CExtNodes.XDecRefPointerNode decRefPointerNode) {
34963498
if (len < s.length()) {
34973499
// When shrinking, we need to decref the items that are now past the end
34983500
for (int i = len; i < s.length(); i++) {
34993501
Object elementPointer = readNode.readArrayElement(s.getPtr(), i);
35003502
decRefPointerNode.execute(inliningTarget, elementPointer);
3503+
writeNode.writeArrayElement(s.getPtr(), i, 0L);
35013504
}
35023505
}
35033506
s.setNewLength(len);

0 commit comments

Comments
 (0)