Skip to content

Commit

Permalink
Revert "bpo-40170: PyType_HasFeature() now always calls PyType_GetFla…
Browse files Browse the repository at this point in the history
…gs() (GH-19378)" (GH-21390)

This partially reverts commit 45ec5b9.
  • Loading branch information
vstinner authored Jul 8, 2020
1 parent aebc049 commit b26a0db
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
12 changes: 10 additions & 2 deletions Include/object.h
Original file line number Diff line number Diff line change
Expand Up @@ -637,8 +637,16 @@ times.


static inline int
PyType_HasFeature(PyTypeObject *type, unsigned long feature) {
return ((PyType_GetFlags(type) & feature) != 0);
PyType_HasFeature(PyTypeObject *type, unsigned long feature)
{
unsigned long flags;
#ifdef Py_LIMITED_API
// PyTypeObject is opaque in the limited C API
flags = PyType_GetFlags(type);
#else
flags = type->tp_flags;
#endif
return ((flags & feature) != 0);
}

#define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Revert :c:func:`PyType_HasFeature` change: it reads again directly the
:c:member:`PyTypeObject.tp_flags` member when the limited C API is not used,
rather than always calling :c:func:`PyType_GetFlags` which hides implementation
details.

0 comments on commit b26a0db

Please sign in to comment.