Skip to content

Commit

Permalink
bpo-40521: Fix update_slot() when INTERN_NAME_STRINGS is not defined (#…
Browse files Browse the repository at this point in the history
…20246)

Fix type update_slot() function when the macro INTERN_NAME_STRINGS is
not defined: use _PyUnicode_EQ() in this case.
  • Loading branch information
vstinner committed May 19, 2020
1 parent aca4670 commit 0509c45
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion Objects/typeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -7661,8 +7661,17 @@ update_slot(PyTypeObject *type, PyObject *name)
assert(slotdefs_initialized);
pp = ptrs;
for (p = slotdefs; p->name; p++) {
if (p->name_strobj == name)
assert(PyUnicode_CheckExact(p->name_strobj));
assert(PyUnicode_CheckExact(name));
#ifdef INTERN_NAME_STRINGS
if (p->name_strobj == name) {
*pp++ = p;
}
#else
if (p->name_strobj == name || _PyUnicode_EQ(p->name_strobj, name)) {
*pp++ = p;
}
#endif
}
*pp = NULL;
for (pp = ptrs; *pp; pp++) {
Expand Down

0 comments on commit 0509c45

Please sign in to comment.