Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
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)