Skip to content

Commit 7723ceb

Browse files
committed
Optimize mcache_name_eq().
Handle common cases early.
1 parent 8335fa1 commit 7723ceb

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

Objects/typeobject.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,17 @@ static inline int
8282
mcache_name_eq(PyObject *entry_name, PyObject *name)
8383
{
8484
#ifdef Py_GIL_DISABLED
85+
if (entry_name == name) {
86+
return 1;
87+
}
8588
if (entry_name == NULL || entry_name == Py_None) {
8689
return 0;
8790
}
8891
assert(PyUnicode_CheckExact(entry_name));
8992
assert(PyUnicode_CheckExact(name));
93+
if (_PyObject_HashFast(entry_name) != _PyObject_HashFast(name)) {
94+
return 0;
95+
}
9096
return _PyUnicode_Equal(entry_name, name);
9197
#else
9298
return entry_name == name;

0 commit comments

Comments
 (0)