Lines Matching refs:dk
303 #define DK_MASK(dk) (DK_SIZE(dk)-1)
308 dictkeys_incref(PyDictKeysObject *dk)
313 dk->dk_refcnt++;
317 dictkeys_decref(PyDictKeysObject *dk)
319 assert(dk->dk_refcnt > 0);
323 if (--dk->dk_refcnt == 0) {
324 free_keys_object(dk);
486 dump_entries(PyDictKeysObject *dk)
488 for (Py_ssize_t i = 0; i < dk->dk_nentries; i++) {
489 if (DK_IS_UNICODE(dk)) {
490 PyDictUnicodeEntry *ep = &DK_UNICODE_ENTRIES(dk)[i];
494 PyDictKeyEntry *ep = &DK_ENTRIES(dk)[i];
596 PyDictKeysObject *dk;
626 dk = state->keys_free_list[--state->keys_numfree];
632 dk = PyObject_Malloc(sizeof(PyDictKeysObject)
635 if (dk == NULL) {
643 dk->dk_refcnt = 1;
644 dk->dk_log2_size = log2_size;
645 dk->dk_log2_index_bytes = log2_bytes;
646 dk->dk_kind = unicode ? DICT_KEYS_UNICODE : DICT_KEYS_GENERAL;
647 dk->dk_nentries = 0;
648 dk->dk_usable = usable;
649 dk->dk_version = 0;
650 memset(&dk->dk_indices[0], 0xff, ((size_t)1 << log2_bytes));
651 memset(&dk->dk_indices[(size_t)1 << log2_bytes], 0, entry_size * usable);
652 return dk;
868 unicodekeys_lookup_generic(PyDictObject *mp, PyDictKeysObject* dk, PyObject *key, Py_hash_t hash)
870 PyDictUnicodeEntry *ep0 = DK_UNICODE_ENTRIES(dk);
871 size_t mask = DK_MASK(dk);
876 ix = dictkeys_get_index(dk, i);
892 if (dk == mp->ma_keys && ep->me_key == startkey) {
914 unicodekeys_lookup_unicode(PyDictKeysObject* dk, PyObject *key, Py_hash_t hash)
916 PyDictUnicodeEntry *ep0 = DK_UNICODE_ENTRIES(dk);
917 size_t mask = DK_MASK(dk);
922 ix = dictkeys_get_index(dk, i);
937 ix = dictkeys_get_index(dk, i);
958 dictkeys_generic_lookup(PyDictObject *mp, PyDictKeysObject* dk, PyObject *key, Py_hash_t hash)
960 PyDictKeyEntry *ep0 = DK_ENTRIES(dk);
961 size_t mask = DK_MASK(dk);
966 ix = dictkeys_get_index(dk, i);
981 if (dk == mp->ma_keys && ep->me_key == startkey) {
1008 _PyDictKeys_StringLookup(PyDictKeysObject* dk, PyObject *key)
1010 DictKeysKind kind = dk->dk_kind;
1022 return unicodekeys_lookup_unicode(dk, key, hash);
1043 PyDictKeysObject *dk;
1048 dk = mp->ma_keys;
1049 kind = dk->dk_kind;
1053 ix = unicodekeys_lookup_unicode(dk, key, hash);
1056 ix = unicodekeys_lookup_generic(mp, dk, key, hash);
1067 *value_addr = DK_UNICODE_ENTRIES(dk)[ix].me_value;
1075 ix = dictkeys_generic_lookup(mp, dk, key, hash);
1080 *value_addr = DK_ENTRIES(dk)[ix].me_value;