Skip to content

Commit dddd56f

Browse files
committed
Fix a case when the tuple length is not known
1 parent c7b7b48 commit dddd56f

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

Python/optimizer_bytecodes.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,8 +376,15 @@ dummy_func(void) {
376376
assert(PyLong_CheckExact(sym_get_const(ctx, right)));
377377
long index = PyLong_AsLong(sym_get_const(ctx, right));
378378
assert(index >= 0);
379-
assert(index < sym_tuple_length(left));
380-
res = sym_tuple_getitem(ctx, left, index);
379+
int tuple_length = sym_tuple_length(left);
380+
if (tuple_length == -1) {
381+
// Unknown length
382+
res = sym_new_not_null(ctx);
383+
}
384+
else {
385+
assert(index < tuple_length);
386+
res = sym_tuple_getitem(ctx, left, index);
387+
}
381388
}
382389
else {
383390
res = sym_new_not_null(ctx);

Python/optimizer_cases.c.h

Lines changed: 8 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)