def __init__(self, trace, start, end, force_inputargs=None, metainterp_sd=None): self.trace = trace self.metainterp_sd = metainterp_sd self.all_descr_len = len(metainterp_sd.all_descrs) self._cache = [None] * trace._index if force_inputargs is not None: # the trace here is cut and we're working from # inputargs that are in the middle, shuffle stuff around a bit self.inputargs = [ rop.inputarg_from_tp(arg.type) for arg in force_inputargs ] for i, arg in enumerate(force_inputargs): self._cache[arg.get_position()] = self.inputargs[i] else: self.inputargs = [ rop.inputarg_from_tp(arg.type) for arg in self.trace.inputargs ] for i, arg in enumerate(self.inputargs): self._cache[i] = arg self.start = start self.pos = start self._count = start self._index = start self.start_index = start self.end = end
def __init__(self, trace, start, end, force_inputargs=None, metainterp_sd=None): self.trace = trace self.metainterp_sd = metainterp_sd self.all_descr_len = len(metainterp_sd.all_descrs) self._cache = [None] * trace._index if force_inputargs is not None: # the trace here is cut and we're working from # inputargs that are in the middle, shuffle stuff around a bit self.inputargs = [rop.inputarg_from_tp(arg.type) for arg in force_inputargs] for i, arg in enumerate(force_inputargs): self._cache[arg.get_position()] = self.inputargs[i] else: self.inputargs = [rop.inputarg_from_tp(arg.type) for arg in self.trace.inputargs] for i, arg in enumerate(self.inputargs): self._cache[i] = arg self.start = start self.pos = start self._count = start self._index = start self.start_index = start self.end = end