#ifndef Py_DICT_COMMON_H#define Py_DICT_COMMON_Htypedef struct {/* Cached hash code of me_key. */Py_hash_t me_hash;PyObject *me_key;PyObject *me_value; /* This field is only meaningful for combined tables */} PyDictKeyEntry;/* dict_lookup_func() returns index of entry which can be used like DK_ENTRIES(dk)[index].* -1 when no entry found, -3 when compare raises error.*/typedef Py_ssize_t (*dict_lookup_func)(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr);#define DKIX_EMPTY (-1)#define DKIX_DUMMY (-2) /* Used internally */#define DKIX_ERROR (-3)/* See dictobject.c for actual layout of DictKeysObject */struct _dictkeysobject {Py_ssize_t dk_refcnt;/* Size of the hash table (dk_indices). It must be a power of 2. */Py_ssize_t dk_size;/* Function to lookup in the hash table (dk_indices):- lookdict(): general-purpose, and may return DKIX_ERROR if (andonly if) a comparison raises an exception.- lookdict_unicode(): specialized to Unicode string keys, comparison ofwhich can never raise an exception; that function can never returnDKIX_ERROR.- lookdict_unicode_nodummy(): similar to lookdict_unicode() but furtherspecialized for Unicode string keys that cannot be the <dummy> value.- lookdict_split(): Version of lookdict() for split tables. */dict_lookup_func dk_lookup;/* Number of usable entries in dk_entries. */Py_ssize_t dk_usable;/* Number of used entries in dk_entries. */Py_ssize_t dk_nentries;/* Actual hash table of dk_size entries. It holds indices in dk_entries,or DKIX_EMPTY(-1) or DKIX_DUMMY(-2).Indices must be: 0 <= indice < USABLE_FRACTION(dk_size).The size in bytes of an indice depends on dk_size:- 1 byte if dk_size <= 0xff (char*)- 2 bytes if dk_size <= 0xffff (int16_t*)- 4 bytes if dk_size <= 0xffffffff (int32_t*)- 8 bytes otherwise (int64_t*)Dynamically sized, SIZEOF_VOID_P is minimum. */char dk_indices[]; /* char is required to avoid strict aliasing. *//* "PyDictKeyEntry dk_entries[dk_usable];" array follows:see the DK_ENTRIES() macro */};#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。