def get_entry(self, idx): """ Get entry number *idx*. """ entry_ptr = cgutils.gep(self._builder, self._entries, idx) entry = self._context.make_data_helper(self._builder, types.SetEntry(self._ty), ref=entry_ptr) return entry
def __init__(self, dmm, fe_type): entry_type = types.SetEntry(fe_type.container) members = [ # Number of active + deleted entries ('fill', types.intp), # Number of active entries ('used', types.intp), # Allocated size - 1 (size being a power of 2) ('mask', types.intp), # Search finger ('finger', types.intp), # This member is only used only for reflected sets ('dirty', types.boolean), # Actually an inlined var-sized array ('entries', entry_type), ] super(SetPayloadModel, self).__init__(dmm, fe_type, members)
def get_entry_size(context, set_type): """ Return the entry size for the given set type. """ llty = context.get_data_type(types.SetEntry(set_type)) return context.get_abi_sizeof(llty)