Skip to content

Commit 2f8dad9

Browse files
committed
Feedback from code review
1 parent d097c86 commit 2f8dad9

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

Python/optimizer_symbols.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ _Py_uop_sym_set_type_version(JitOptContext *ctx, JitOptSymbol *sym, unsigned int
220220
}
221221
case JIT_SYM_KNOWN_VALUE_TAG:
222222
if (Py_TYPE(sym->value.value)->tp_version_tag != version) {
223+
Py_CLEAR(sym->value.value);
223224
sym_set_bottom(ctx, sym);
224225
return false;
225226
};
@@ -275,18 +276,16 @@ _Py_uop_sym_set_const(JitOptContext *ctx, JitOptSymbol *sym, PyObject *const_val
275276
}
276277
return;
277278
case JIT_SYM_TUPLE_TAG:
278-
// TODO: We should do something smarter here. It's not as simple
279-
// as sym_set_const, though, since we need to sym_set_bottom if
280-
// the length doesn't match, or one of the symbolic types within
281-
// the tuple contradicts its constant counterpart:
282279
if (PyTuple_CheckExact(const_val)) {
283-
Py_ssize_t len = PyTuple_GET_SIZE(const_val);
284-
if (len == sym->tuple.length) {
280+
Py_ssize_t len = _Py_uop_sym_tuple_length(sym);
281+
if (len == PyTuple_GET_SIZE(const_val)) {
285282
for (Py_ssize_t i = 0; i < len; i++) {
286-
JitOptSymbol *item = allocation_base(ctx) + sym->tuple.items[i];
287-
PyObject *item_const = PyTuple_GET_ITEM(const_val, i);
288-
_Py_uop_sym_set_const(ctx, item, item_const);
283+
JitOptSymbol *sym_item = _Py_uop_sym_tuple_getitem(ctx, sym, i);
284+
PyObject *item = PyTuple_GET_ITEM(const_val, i);
285+
_Py_uop_sym_set_const(ctx, sym_item, item);
289286
}
287+
_Py_uop_sym_set_const(ctx, sym, const_val);
288+
return;
290289
}
291290
}
292291
sym_set_bottom(ctx, sym);

0 commit comments

Comments
 (0)