Lines Matching full:so
76 set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash) in set_lookkey() argument
81 size_t mask = so->mask; in set_lookkey()
87 entry = &so->table[i]; in set_lookkey()
101 table = so->table; in set_lookkey()
107 if (table != so->table || entry->key != startkey) in set_lookkey()
108 return set_lookkey(so, key, hash); in set_lookkey()
111 mask = so->mask; in set_lookkey()
123 set_add_entry(PySetObject *so, PyObject *key, Py_hash_t hash) in set_add_entry() argument
134 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_add_entry()
142 mask = so->mask; in set_add_entry()
148 entry = &so->table[i]; in set_add_entry()
162 table = so->table; in set_add_entry()
170 if (table != so->table || entry->key != startkey) in set_add_entry()
172 mask = so->mask; in set_add_entry()
187 FT_ATOMIC_STORE_SSIZE_RELAXED(so->used, so->used + 1); in set_add_entry()
193 so->fill++; in set_add_entry()
194 FT_ATOMIC_STORE_SSIZE_RELAXED(so->used, so->used + 1); in set_add_entry()
197 if ((size_t)so->fill*5 < mask*3) in set_add_entry()
199 return set_table_resize(so, so->used>50000 ? so->used*2 : so->used*4); in set_add_entry()
254 set_table_resize(PySetObject *so, Py_ssize_t minused) in set_table_resize() argument
257 Py_ssize_t oldmask = so->mask; in set_table_resize()
272 oldtable = so->table; in set_table_resize()
274 is_oldtable_malloced = oldtable != so->smalltable; in set_table_resize()
278 newtable = so->smalltable; in set_table_resize()
280 if (so->fill == so->used) { in set_table_resize()
281 /* No dummies, so no point doing anything. */ in set_table_resize()
290 assert(so->fill > so->used); in set_table_resize()
306 so->mask = newsize - 1; in set_table_resize()
307 so->table = newtable; in set_table_resize()
311 newmask = (size_t)so->mask; in set_table_resize()
312 if (so->fill == so->used) { in set_table_resize()
319 so->fill = so->used; in set_table_resize()
333 set_contains_entry(PySetObject *so, PyObject *key, Py_hash_t hash) in set_contains_entry() argument
337 entry = set_lookkey(so, key, hash); in set_contains_entry()
347 set_discard_entry(PySetObject *so, PyObject *key, Py_hash_t hash) in set_discard_entry() argument
352 entry = set_lookkey(so, key, hash); in set_discard_entry()
360 FT_ATOMIC_STORE_SSIZE_RELAXED(so->used, so->used - 1); in set_discard_entry()
366 set_add_key(PySetObject *so, PyObject *key) in set_add_key() argument
372 return set_add_entry(so, key, hash); in set_add_key()
376 set_contains_key(PySetObject *so, PyObject *key) in set_contains_key() argument
382 return set_contains_entry(so, key, hash); in set_contains_key()
386 set_discard_key(PySetObject *so, PyObject *key) in set_discard_key() argument
392 return set_discard_entry(so, key, hash); in set_discard_key()
396 set_empty_to_minsize(PySetObject *so) in set_empty_to_minsize() argument
398 memset(so->smalltable, 0, sizeof(so->smalltable)); in set_empty_to_minsize()
399 so->fill = 0; in set_empty_to_minsize()
400 FT_ATOMIC_STORE_SSIZE_RELAXED(so->used, 0); in set_empty_to_minsize()
401 so->mask = PySet_MINSIZE - 1; in set_empty_to_minsize()
402 so->table = so->smalltable; in set_empty_to_minsize()
403 so->hash = -1; in set_empty_to_minsize()
407 set_clear_internal(PySetObject *so) in set_clear_internal() argument
410 setentry *table = so->table; in set_clear_internal()
411 Py_ssize_t fill = so->fill; in set_clear_internal()
412 Py_ssize_t used = so->used; in set_clear_internal()
413 int table_is_malloced = table != so->smalltable; in set_clear_internal()
416 assert (PyAnySet_Check(so)); in set_clear_internal()
422 * clearing the slots, and never refer to anything via so->ref while in set_clear_internal()
426 set_empty_to_minsize(so); in set_clear_internal()
435 set_empty_to_minsize(so); in set_clear_internal()
441 * has unique access to it, so decref side-effects can't alter it. in set_clear_internal()
456 * Iterate over a set table. Use like so:
469 set_next(PySetObject *so, Py_ssize_t *pos_ptr, setentry **entry_ptr) in set_next() argument
475 assert (PyAnySet_Check(so)); in set_next()
478 mask = so->mask; in set_next()
479 entry = &so->table[i]; in set_next()
493 set_dealloc(PySetObject *so) in set_dealloc() argument
496 Py_ssize_t used = so->used; in set_dealloc()
499 PyObject_GC_UnTrack(so); in set_dealloc()
500 Py_TRASHCAN_BEGIN(so, set_dealloc) in set_dealloc()
501 if (so->weakreflist != NULL) in set_dealloc()
502 PyObject_ClearWeakRefs((PyObject *) so); in set_dealloc()
504 for (entry = so->table; used > 0; entry++) { in set_dealloc()
510 if (so->table != so->smalltable) in set_dealloc()
511 PyMem_Free(so->table); in set_dealloc()
512 Py_TYPE(so)->tp_free(so); in set_dealloc()
517 set_repr_lock_held(PySetObject *so) in set_repr_lock_held() argument
520 int status = Py_ReprEnter((PyObject*)so); in set_repr_lock_held()
525 return PyUnicode_FromFormat("%s(...)", Py_TYPE(so)->tp_name); in set_repr_lock_held()
529 if (!so->used) { in set_repr_lock_held()
530 Py_ReprLeave((PyObject*)so); in set_repr_lock_held()
531 return PyUnicode_FromFormat("%s()", Py_TYPE(so)->tp_name); in set_repr_lock_held()
534 keys = PySequence_List((PyObject *)so); in set_repr_lock_held()
549 if (!PySet_CheckExact(so)) in set_repr_lock_held()
551 Py_TYPE(so)->tp_name, in set_repr_lock_held()
557 Py_ReprLeave((PyObject*)so); in set_repr_lock_held()
562 set_repr(PySetObject *so) in set_repr() argument
565 Py_BEGIN_CRITICAL_SECTION(so); in set_repr()
566 result = set_repr_lock_held(so); in set_repr()
572 set_len(PySetObject *so) in set_len() argument
574 return FT_ATOMIC_LOAD_SSIZE_RELAXED(so->used); in set_len()
578 set_merge_lock_held(PySetObject *so, PyObject *otherset) in set_merge_lock_held() argument
586 assert (PyAnySet_Check(so)); in set_merge_lock_held()
588 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_merge_lock_held()
592 if (other == so || other->used == 0) in set_merge_lock_held()
599 if ((so->fill + other->used)*5 >= so->mask*3) { in set_merge_lock_held()
600 if (set_table_resize(so, (so->used + other->used)*2) != 0) in set_merge_lock_held()
603 so_entry = so->table; in set_merge_lock_held()
608 if (so->fill == 0 && so->mask == other->mask && other->fill == other->used) { in set_merge_lock_held()
617 so->fill = other->fill; in set_merge_lock_held()
618 FT_ATOMIC_STORE_SSIZE_RELAXED(so->used, other->used); in set_merge_lock_held()
623 if (so->fill == 0) { in set_merge_lock_held()
624 setentry *newtable = so->table; in set_merge_lock_held()
625 size_t newmask = (size_t)so->mask; in set_merge_lock_held()
626 so->fill = other->used; in set_merge_lock_held()
627 FT_ATOMIC_STORE_SSIZE_RELAXED(so->used, other->used); in set_merge_lock_held()
638 /* We can't assure there are no duplicates, so do normal insertions */ in set_merge_lock_held()
643 if (set_add_entry(so, key, other_entry->hash)) in set_merge_lock_held()
653 so: setobject
661 set_pop_impl(PySetObject *so) in set_pop_impl() argument
665 setentry *entry = so->table + (so->finger & so->mask); in set_pop_impl()
666 setentry *limit = so->table + so->mask; in set_pop_impl()
669 if (so->used == 0) { in set_pop_impl()
676 entry = so->table; in set_pop_impl()
681 FT_ATOMIC_STORE_SSIZE_RELAXED(so->used, so->used - 1); in set_pop_impl()
682 so->finger = entry - so->table + 1; /* next place to start */ in set_pop_impl()
687 set_traverse(PySetObject *so, visitproc visit, void *arg) in set_traverse() argument
692 while (set_next(so, &pos, &entry)) in set_traverse()
699 small number of elements with nearby hashes so that many distinct
717 PySetObject *so = (PySetObject *)self; in frozenset_hash() local
721 if (so->hash != -1) in frozenset_hash()
722 return so->hash; in frozenset_hash()
728 subtract out their effect afterwards so that the final hash in frozenset_hash()
734 for (entry = so->table; entry <= &so->table[so->mask]; entry++) in frozenset_hash()
738 if ((so->mask + 1 - so->fill) & 1) in frozenset_hash()
742 if ((so->fill - so->used) & 1) in frozenset_hash()
756 so->hash = hash; in frozenset_hash()
828 PySetObject *so = si->si_set; in setiter_iternext() local
830 if (so == NULL) in setiter_iternext()
832 assert (PyAnySet_Check(so)); in setiter_iternext()
834 Py_ssize_t so_used = FT_ATOMIC_LOAD_SSIZE(so->used); in setiter_iternext()
843 Py_BEGIN_CRITICAL_SECTION(so); in setiter_iternext()
846 entry = so->table; in setiter_iternext()
847 mask = so->mask; in setiter_iternext()
858 Py_DECREF(so); in setiter_iternext()
899 set_iter(PySetObject *so) in set_iter() argument
901 Py_ssize_t size = set_len(so); in set_iter()
905 si->si_set = (PySetObject*)Py_NewRef(so); in set_iter()
914 set_update_dict_lock_held(PySetObject *so, PyObject *other) in set_update_dict_lock_held() argument
918 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_update_dict_lock_held()
926 if ((so->fill + dictsize)*5 >= so->mask*3) { in set_update_dict_lock_held()
927 if (set_table_resize(so, (so->used + dictsize)*2) != 0) { in set_update_dict_lock_held()
937 if (set_add_entry(so, key, hash)) { in set_update_dict_lock_held()
945 set_update_iterable_lock_held(PySetObject *so, PyObject *other) in set_update_iterable_lock_held() argument
947 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_update_iterable_lock_held()
956 if (set_add_key(so, key)) { in set_update_iterable_lock_held()
970 set_update_lock_held(PySetObject *so, PyObject *other) in set_update_lock_held() argument
973 return set_merge_lock_held(so, other); in set_update_lock_held()
976 return set_update_dict_lock_held(so, other); in set_update_lock_held()
978 return set_update_iterable_lock_held(so, other); in set_update_lock_held()
981 // set_update for a `so` that is only visible to the current thread
983 set_update_local(PySetObject *so, PyObject *other) in set_update_local() argument
985 assert(Py_REFCNT(so) == 1); in set_update_local()
989 rv = set_merge_lock_held(so, other); in set_update_local()
996 rv = set_update_dict_lock_held(so, other); in set_update_local()
1000 return set_update_iterable_lock_held(so, other); in set_update_local()
1004 set_update_internal(PySetObject *so, PyObject *other) in set_update_internal() argument
1007 if (Py_Is((PyObject *)so, other)) { in set_update_internal()
1011 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_update_internal()
1012 rv = set_merge_lock_held(so, other); in set_update_internal()
1018 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_update_internal()
1019 rv = set_update_dict_lock_held(so, other); in set_update_internal()
1025 Py_BEGIN_CRITICAL_SECTION(so); in set_update_internal()
1026 rv = set_update_iterable_lock_held(so, other); in set_update_internal()
1034 so: setobject
1041 set_update_impl(PySetObject *so, PyObject *args) in set_update_impl() argument
1048 if (set_update_internal(so, other)) in set_update_impl()
1056 set object 64 byte aligned so that most of the fields
1064 PySetObject *so; in make_new_set() local
1066 so = (PySetObject *)type->tp_alloc(type, 0); in make_new_set()
1067 if (so == NULL) in make_new_set()
1070 so->fill = 0; in make_new_set()
1071 so->used = 0; in make_new_set()
1072 so->mask = PySet_MINSIZE - 1; in make_new_set()
1073 so->table = so->smalltable; in make_new_set()
1074 so->hash = -1; in make_new_set()
1075 so->finger = 0; in make_new_set()
1076 so->weakreflist = NULL; in make_new_set()
1079 if (set_update_local(so, iterable)) { in make_new_set()
1080 Py_DECREF(so); in make_new_set()
1085 return (PyObject *)so; in make_new_set()
1206 so: setobject
1212 set_copy_impl(PySetObject *so) in set_copy_impl() argument
1215 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_copy_impl()
1216 PyObject *copy = make_new_set_basetype(Py_TYPE(so), NULL); in set_copy_impl()
1220 if (set_merge_lock_held((PySetObject *)copy, (PyObject *)so) < 0) { in set_copy_impl()
1230 so: setobject
1236 frozenset_copy_impl(PySetObject *so) in frozenset_copy_impl() argument
1239 if (PyFrozenSet_CheckExact(so)) { in frozenset_copy_impl()
1240 return Py_NewRef(so); in frozenset_copy_impl()
1242 return set_copy_impl(so); in frozenset_copy_impl()
1248 so: setobject
1254 set_clear_impl(PySetObject *so) in set_clear_impl() argument
1257 set_clear_internal(so); in set_clear_impl()
1263 so: setobject
1270 set_union_impl(PySetObject *so, PyObject *args) in set_union_impl() argument
1277 result = (PySetObject *)set_copy(so, NULL); in set_union_impl()
1283 if ((PyObject *)so == other) in set_union_impl()
1294 set_or(PySetObject *so, PyObject *other) in set_or() argument
1298 if (!PyAnySet_Check(so) || !PyAnySet_Check(other)) in set_or()
1301 result = (PySetObject *)set_copy(so, NULL); in set_or()
1305 if (Py_Is((PyObject *)so, other)) { in set_or()
1316 set_ior(PySetObject *so, PyObject *other) in set_ior() argument
1321 if (set_update_internal(so, other)) { in set_ior()
1324 return Py_NewRef(so); in set_ior()
1328 set_intersection(PySetObject *so, PyObject *other) in set_intersection() argument
1335 if ((PyObject *)so == other) in set_intersection()
1336 return set_copy_impl(so); in set_intersection()
1338 result = (PySetObject *)make_new_set_basetype(Py_TYPE(so), NULL); in set_intersection()
1346 if (PySet_GET_SIZE(other) > PySet_GET_SIZE(so)) { in set_intersection()
1347 tmp = (PyObject *)so; in set_intersection()
1348 so = (PySetObject *)other; in set_intersection()
1356 rv = set_contains_entry(so, key, hash); in set_intersection()
1384 rv = set_contains_entry(so, key, hash); in set_intersection()
1390 if (PySet_GET_SIZE(result) >= PySet_GET_SIZE(so)) { in set_intersection()
1412 so: setobject
1419 set_intersection_multi_impl(PySetObject *so, PyObject *args) in set_intersection_multi_impl() argument
1425 return set_copy(so, NULL); in set_intersection_multi_impl()
1428 PyObject *result = Py_NewRef(so); in set_intersection_multi_impl()
1445 set_intersection_update(PySetObject *so, PyObject *other) in set_intersection_update() argument
1449 tmp = set_intersection(so, other); in set_intersection_update()
1452 set_swap_bodies(so, (PySetObject *)tmp); in set_intersection_update()
1459 so: setobject
1466 set_intersection_update_multi_impl(PySetObject *so, PyObject *args) in set_intersection_update_multi_impl() argument
1471 tmp = set_intersection_multi_impl(so, args); in set_intersection_update_multi_impl()
1474 Py_BEGIN_CRITICAL_SECTION(so); in set_intersection_update_multi_impl()
1475 set_swap_bodies(so, (PySetObject *)tmp); in set_intersection_update_multi_impl()
1482 set_and(PySetObject *so, PyObject *other) in set_and() argument
1484 if (!PyAnySet_Check(so) || !PyAnySet_Check(other)) in set_and()
1488 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_and()
1489 rv = set_intersection(so, other); in set_and()
1496 set_iand(PySetObject *so, PyObject *other) in set_iand() argument
1503 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_iand()
1504 result = set_intersection_update(so, other); in set_iand()
1510 return Py_NewRef(so); in set_iand()
1514 @critical_section so other
1516 so: setobject
1524 set_isdisjoint_impl(PySetObject *so, PyObject *other) in set_isdisjoint_impl() argument
1530 if ((PyObject *)so == other) { in set_isdisjoint_impl()
1531 if (PySet_GET_SIZE(so) == 0) in set_isdisjoint_impl()
1541 if (PySet_GET_SIZE(other) > PySet_GET_SIZE(so)) { in set_isdisjoint_impl()
1542 tmp = (PyObject *)so; in set_isdisjoint_impl()
1543 so = (PySetObject *)other; in set_isdisjoint_impl()
1549 rv = set_contains_entry(so, key, entry->hash); in set_isdisjoint_impl()
1566 rv = set_contains_key(so, key); in set_isdisjoint_impl()
1584 set_difference_update_internal(PySetObject *so, PyObject *other) in set_difference_update_internal() argument
1586 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_difference_update_internal()
1589 if ((PyObject *)so == other) in set_difference_update_internal()
1590 return set_clear_internal(so); in set_difference_update_internal()
1600 if ((PySet_GET_SIZE(other) >> 3) > PySet_GET_SIZE(so)) { in set_difference_update_internal()
1601 other = set_intersection(so, other); in set_difference_update_internal()
1611 if (set_discard_entry(so, key, entry->hash) < 0) { in set_difference_update_internal()
1627 if (set_discard_key(so, key) < 0) { in set_difference_update_internal()
1639 if ((size_t)(so->fill - so->used) <= (size_t)so->mask / 4) in set_difference_update_internal()
1641 return set_table_resize(so, so->used>50000 ? so->used*2 : so->used*4); in set_difference_update_internal()
1646 so: setobject
1653 set_difference_update_impl(PySetObject *so, PyObject *args) in set_difference_update_impl() argument
1661 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_difference_update_impl()
1662 rv = set_difference_update_internal(so, other); in set_difference_update_impl()
1672 set_copy_and_difference(PySetObject *so, PyObject *other) in set_copy_and_difference() argument
1676 result = set_copy_impl(so); in set_copy_and_difference()
1686 set_difference(PySetObject *so, PyObject *other) in set_difference() argument
1702 return set_copy_and_difference(so, other); in set_difference()
1705 /* If len(so) much more than len(other), it's more efficient to simply copy in set_difference()
1706 * so and then iterate other looking for common elements. */ in set_difference()
1707 if ((PySet_GET_SIZE(so) >> 2) > other_size) { in set_difference()
1708 return set_copy_and_difference(so, other); in set_difference()
1711 result = make_new_set_basetype(Py_TYPE(so), NULL); in set_difference()
1716 while (set_next(so, &pos, &entry)) { in set_difference()
1738 /* Iterate over so, checking for common elements in other. */ in set_difference()
1739 while (set_next(so, &pos, &entry)) { in set_difference()
1763 so: setobject
1770 set_difference_multi_impl(PySetObject *so, PyObject *args) in set_difference_multi_impl() argument
1777 return set_copy(so, NULL); in set_difference_multi_impl()
1781 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_difference_multi_impl()
1782 result = set_difference(so, other); in set_difference_multi_impl()
1802 set_sub(PySetObject *so, PyObject *other) in set_sub() argument
1804 if (!PyAnySet_Check(so) || !PyAnySet_Check(other)) in set_sub()
1808 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_sub()
1809 rv = set_difference(so, other); in set_sub()
1815 set_isub(PySetObject *so, PyObject *other) in set_isub() argument
1821 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_isub()
1822 rv = set_difference_update_internal(so, other); in set_isub()
1827 return Py_NewRef(so); in set_isub()
1831 set_symmetric_difference_update_dict(PySetObject *so, PyObject *other) in set_symmetric_difference_update_dict() argument
1833 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_symmetric_difference_update_dict()
1841 int rv = set_discard_entry(so, key, hash); in set_symmetric_difference_update_dict()
1847 if (set_add_entry(so, key, hash)) { in set_symmetric_difference_update_dict()
1858 set_symmetric_difference_update_set(PySetObject *so, PySetObject *other) in set_symmetric_difference_update_set() argument
1860 _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(so); in set_symmetric_difference_update_set()
1868 int rv = set_discard_entry(so, key, hash); in set_symmetric_difference_update_set()
1874 if (set_add_entry(so, key, hash)) { in set_symmetric_difference_update_set()
1886 so: setobject
1894 set_symmetric_difference_update(PySetObject *so, PyObject *other) in set_symmetric_difference_update() argument
1897 if (Py_Is((PyObject *)so, other)) { in set_symmetric_difference_update()
1898 return set_clear(so, NULL); in set_symmetric_difference_update()
1903 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_symmetric_difference_update()
1904 rv = set_symmetric_difference_update_dict(so, other); in set_symmetric_difference_update()
1908 Py_BEGIN_CRITICAL_SECTION2(so, other); in set_symmetric_difference_update()
1909 rv = set_symmetric_difference_update_set(so, (PySetObject *)other); in set_symmetric_difference_update()
1913 PySetObject *otherset = (PySetObject *)make_new_set_basetype(Py_TYPE(so), other); in set_symmetric_difference_update()
1918 Py_BEGIN_CRITICAL_SECTION(so); in set_symmetric_difference_update()
1919 rv = set_symmetric_difference_update_set(so, otherset); in set_symmetric_difference_update()
1931 @critical_section so other
1933 so: setobject
1941 set_symmetric_difference_impl(PySetObject *so, PyObject *other) in set_symmetric_difference_impl() argument
1944 PySetObject *result = (PySetObject *)make_new_set_basetype(Py_TYPE(so), NULL); in set_symmetric_difference_impl()
1952 if (set_symmetric_difference_update_set(result, so) < 0) { in set_symmetric_difference_impl()
1960 set_xor(PySetObject *so, PyObject *other) in set_xor() argument
1962 if (!PyAnySet_Check(so) || !PyAnySet_Check(other)) in set_xor()
1964 return set_symmetric_difference(so, other); in set_xor()
1968 set_ixor(PySetObject *so, PyObject *other) in set_ixor() argument
1974 result = set_symmetric_difference_update(so, other); in set_ixor()
1978 return Py_NewRef(so); in set_ixor()
1982 @critical_section so other
1984 so: setobject
1992 set_issubset_impl(PySetObject *so, PyObject *other) in set_issubset_impl() argument
2000 PyObject *tmp = set_intersection(so, other); in set_issubset_impl()
2004 int result = (PySet_GET_SIZE(tmp) == PySet_GET_SIZE(so)); in set_issubset_impl()
2008 if (PySet_GET_SIZE(so) > PySet_GET_SIZE(other)) in set_issubset_impl()
2011 while (set_next(so, &pos, &entry)) { in set_issubset_impl()
2027 @critical_section so other
2029 so: setobject
2037 set_issuperset_impl(PySetObject *so, PyObject *other) in set_issuperset_impl() argument
2041 return set_issubset((PySetObject *)other, (PyObject *)so); in set_issuperset_impl()
2049 int rv = set_contains_key(so, key); in set_issuperset_impl()
2113 so: setobject
2123 set_add_impl(PySetObject *so, PyObject *key) in set_add_impl() argument
2126 if (set_add_key(so, key)) in set_add_impl()
2132 set_contains_lock_held(PySetObject *so, PyObject *key) in set_contains_lock_held() argument
2137 rv = set_contains_key(so, key); in set_contains_lock_held()
2145 rv = set_contains_key(so, tmpkey); in set_contains_lock_held()
2152 _PySet_Contains(PySetObject *so, PyObject *key) in _PySet_Contains() argument
2155 Py_BEGIN_CRITICAL_SECTION(so); in _PySet_Contains()
2156 rv = set_contains_lock_held(so, key); in _PySet_Contains()
2165 so: setobject
2173 set___contains___impl(PySetObject *so, PyObject *key) in set___contains___impl() argument
2178 result = set_contains_lock_held(so, key); in set___contains___impl()
2187 so: setobject
2197 set_remove_impl(PySetObject *so, PyObject *key) in set_remove_impl() argument
2203 rv = set_discard_key(so, key); in set_remove_impl()
2211 rv = set_discard_key(so, tmpkey); in set_remove_impl()
2227 so: setobject
2238 set_discard_impl(PySetObject *so, PyObject *key) in set_discard_impl() argument
2244 rv = set_discard_key(so, key); in set_discard_impl()
2252 rv = set_discard_key(so, tmpkey); in set_discard_impl()
2263 so: setobject
2269 set___reduce___impl(PySetObject *so) in set___reduce___impl() argument
2274 keys = PySequence_List((PyObject *)so); in set___reduce___impl()
2280 state = _PyObject_GetState((PyObject *)so); in set___reduce___impl()
2283 result = PyTuple_Pack(3, Py_TYPE(so), args, state); in set___reduce___impl()
2294 so: setobject
2300 set___sizeof___impl(PySetObject *so) in set___sizeof___impl() argument
2303 size_t res = _PyObject_SIZE(Py_TYPE(so)); in set___sizeof___impl()
2304 if (so->table != so->smalltable) { in set___sizeof___impl()
2305 res += ((size_t)so->mask + 1) * sizeof(setentry); in set___sizeof___impl()
2609 _PySet_ClearInternal(PySetObject *so) in _PySet_ClearInternal() argument
2611 (void)set_clear_internal(so); in _PySet_ClearInternal()