Skip to content

Commit 509938f

Browse files
committed
Fix IndexOutOfBoundsErrors in CreateListFromIteratorNode fallback
1 parent d88698b commit 509938f

File tree

1 file changed

+5
-0
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/builtins

1 file changed

+5
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/builtins/ListNodes.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ public SequenceStorage execute(Object iterator) {
152152
int value = next.executeInt(iterator);
153153
if (i >= elements.length) {
154154
elements = Arrays.copyOf(elements, elements.length * 2);
155+
array = elements;
155156
}
156157
elements[i++] = value;
157158
} catch (PException e) {
@@ -170,6 +171,7 @@ public SequenceStorage execute(Object iterator) {
170171
long value = next.executeLong(iterator);
171172
if (i >= elements.length) {
172173
elements = Arrays.copyOf(elements, elements.length * 2);
174+
array = elements;
173175
}
174176
elements[i++] = value;
175177
} catch (PException e) {
@@ -188,6 +190,7 @@ public SequenceStorage execute(Object iterator) {
188190
double value = next.executeDouble(iterator);
189191
if (i >= elements.length) {
190192
elements = Arrays.copyOf(elements, elements.length * 2);
193+
array = elements;
191194
}
192195
elements[i++] = value;
193196
} catch (PException e) {
@@ -206,6 +209,7 @@ public SequenceStorage execute(Object iterator) {
206209
PList value = PList.expect(next.execute(iterator));
207210
if (i >= elements.length) {
208211
elements = Arrays.copyOf(elements, elements.length * 2);
212+
array = elements;
209213
}
210214
elements[i++] = value;
211215
} catch (PException e) {
@@ -224,6 +228,7 @@ public SequenceStorage execute(Object iterator) {
224228
PTuple value = PTuple.expect(next.execute(iterator));
225229
if (i >= elements.length) {
226230
elements = Arrays.copyOf(elements, elements.length * 2);
231+
array = elements;
227232
}
228233
elements[i++] = value;
229234
} catch (PException e) {

0 commit comments

Comments
 (0)