mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
* Bring in INIT_NONZERO_SET_SLOTS macro from dictionary code.
* Bring in free list from dictionary code. * Improve several comments. * Differencing can leave many dummy entries. If more than 1/6 are dummies, then resize them away. * Factor-out common code with new macro, PyAnySet_CheckExact.
This commit is contained in:
parent
e9fe7e0ef3
commit
bc841a1464
2 changed files with 56 additions and 19 deletions
|
|
@ -59,12 +59,16 @@ struct _setobject {
|
|||
PyAPI_DATA(PyTypeObject) PySet_Type;
|
||||
PyAPI_DATA(PyTypeObject) PyFrozenSet_Type;
|
||||
|
||||
/* Invariants for frozensets only:
|
||||
/* Invariants for frozensets:
|
||||
* data is immutable.
|
||||
* hash is the hash of the frozenset or -1 if not computed yet.
|
||||
* Invariants for sets:
|
||||
* hash is -1
|
||||
*/
|
||||
|
||||
#define PyFrozenSet_CheckExact(ob) ((ob)->ob_type == &PyFrozenSet_Type)
|
||||
#define PyAnySet_CheckExact(ob) \
|
||||
((ob)->ob_type == &PySet_Type || (ob)->ob_type == &PyFrozenSet_Type)
|
||||
#define PyAnySet_Check(ob) \
|
||||
((ob)->ob_type == &PySet_Type || (ob)->ob_type == &PyFrozenSet_Type || \
|
||||
PyType_IsSubtype((ob)->ob_type, &PySet_Type) || \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue