Skip to content

Commit 83e9cad

Browse files
committed
remove incorrect assertion
1 parent c8260e3 commit 83e9cad

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/cext/PythonCextTupleBuiltins.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.ListGeneralizationNode;
6363
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.SetItemNode;
6464
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodes.SetItemScalarNode;
65-
import com.oracle.graal.python.builtins.objects.common.SequenceStorageNodesFactory.GetItemScalarNodeGen;
6665
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
6766
import com.oracle.graal.python.lib.PySliceNew;
6867
import com.oracle.graal.python.lib.PyTupleSizeNode;
@@ -136,7 +135,11 @@ abstract static class _PyTuple_SET_ITEM extends CApiTernaryBuiltinNode {
136135
int doManaged(PTuple tuple, long index, Object element,
137136
@Cached("createSetItem()") SequenceStorageNodes.SetItemNode setItemNode,
138137
@Cached ConditionProfile generalizedProfile) {
139-
assert GetItemScalarNodeGen.getUncached().execute(tuple.getSequenceStorage(), (int) index) == null;
138+
// we cannot assume that there is nothing already in the tuple, because the API usage
139+
// is valid if the tuple has never been visible to Python code so far, and it is up to
140+
// the extension author to take care of correct decref's for the previously contained
141+
// elements. c.f. _testcapi.c#test_k_code where a tuple's element 0 is set multiple
142+
// times
140143
SequenceStorage sequenceStorage = tuple.getSequenceStorage();
141144
checkBounds(sequenceStorage, index);
142145
SequenceStorage newStorage = setItemNode.execute(null, sequenceStorage, (int) index, element);

0 commit comments

Comments
 (0)