Skip to content

Commit 309a34f

Browse files
committed
in TeeDataObject.init() do value check before the actual initialization
1 parent d98309a commit 309a34f

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/itertools/TeeDataObjectBuiltins.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,7 @@ Object init(VirtualFrame frame, PTeeDataObject self, Object it, PList values, Ob
128128
@Cached BranchProfile numreadTooHighProfile,
129129
@Cached BranchProfile nxtNotDOProfile,
130130
@Cached BranchProfile nxtNotNoneProfile) {
131-
self.setIt(it);
132-
133131
int numread = (int) lenNode.execute(frame, values);
134-
Object[] valuesArray = getStorageNode.execute(values).getInternalArray();
135-
Object[] obj = new Object[LINKCELLS];
136-
PythonUtils.arraycopy(valuesArray, 0, obj, 0, numread);
137-
self.setValues(obj);
138132
if (numread == LINKCELLS) {
139133
numreadLCProfile.enter();
140134
if (!(nxt instanceof PTeeDataObject)) {
@@ -148,6 +142,11 @@ Object init(VirtualFrame frame, PTeeDataObject self, Object it, PList values, Ob
148142
nxtNotNoneProfile.enter();
149143
throw raise(ValueError, TDATAOBJECT_SHOULDNT_HAVE_NEXT);
150144
}
145+
self.setIt(it);
146+
Object[] valuesArray = getStorageNode.execute(values).getInternalArray();
147+
Object[] obj = new Object[LINKCELLS];
148+
PythonUtils.arraycopy(valuesArray, 0, obj, 0, numread);
149+
self.setValues(obj);
151150
self.setNumread(numread);
152151
self.setRunning(false);
153152
self.setNextlink(nxt == PNone.NONE ? null : (PTeeDataObject) nxt);

0 commit comments

Comments
 (0)