[3.12] GH-109052: Use the base opcode when comparing code objects (GH-112329)

This commit is contained in:
Tian Gao 2023-11-23 10:18:17 -08:00 committed by GitHub
parent bfc6d91c78
commit 3210e3c6cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 2 deletions

View file

@ -1800,8 +1800,8 @@ code_richcompare(PyObject *self, PyObject *other, int op)
for (int i = 0; i < Py_SIZE(co); i++) {
_Py_CODEUNIT co_instr = _PyCode_CODE(co)[i];
_Py_CODEUNIT cp_instr = _PyCode_CODE(cp)[i];
co_instr.op.code = _PyOpcode_Deopt[co_instr.op.code];
cp_instr.op.code = _PyOpcode_Deopt[cp_instr.op.code];
co_instr.op.code = _Py_GetBaseOpcode(co, i);
cp_instr.op.code = _Py_GetBaseOpcode(cp, i);
eq = co_instr.cache == cp_instr.cache;
if (!eq) {
goto unequal;