MCPcopy Index your code
hub / github.com/python/cpython / _get_entries

Method _get_entries

Tools/gdb/libpython.py:847–868  ·  view source on GitHub ↗
(keys)

Source from the content-addressed store, hash-verified

845
846 @staticmethod
847 def _get_entries(keys):
848 dk_nentries = int(keys['dk_nentries'])
849 dk_size = 1<<int(keys['dk_log2_size'])
850
851 if dk_size <= 0xFF:
852 offset = dk_size
853 elif dk_size <= 0xFFFF:
854 offset = 2 * dk_size
855 elif dk_size <= 0xFFFFFFFF:
856 offset = 4 * dk_size
857 else:
858 offset = 8 * dk_size
859
860 ent_addr = keys['dk_indices'].address
861 ent_addr = ent_addr.cast(_type_unsigned_char_ptr()) + offset
862 if int(keys['dk_kind']) == 0: # DICT_KEYS_GENERAL
863 ent_ptr_t = gdb.lookup_type('PyDictKeyEntry').pointer()
864 else:
865 ent_ptr_t = gdb.lookup_type('PyDictUnicodeEntry').pointer()
866 ent_addr = ent_addr.cast(ent_ptr_t)
867
868 return ent_addr, dk_nentries
869
870
871class PyListObjectPtr(PyObjectPtr):

Callers 2

iteritemsMethod · 0.95

Calls 2

_type_unsigned_char_ptrFunction · 0.85
castMethod · 0.80

Tested by

no test coverage detected