Example #1
0
 def getstate(self, next_offset):
     # getfastscope() can return real None, for undefined locals
     data = self.save_locals_stack()
     if self.last_exception is None:
         data.append(Constant(None))
         data.append(Constant(None))
     else:
         data.append(self.last_exception.w_type)
         data.append(self.last_exception.w_value)
     recursively_flatten(data)
     return FrameState(data, self.blockstack[:], next_offset)
Example #2
0
 def __init__(self, func, code):
     from rpython.flowspace.flowcontext import SpamBlock
     locals = [None] * code.co_nlocals
     for i in range(code.formalargcount):
         locals[i] = Variable(code.co_varnames[i])
     state = FrameState(locals, [], None, [], 0)
     initialblock = SpamBlock(state)
     super(PyGraph, self).__init__(self._sanitize_funcname(func), initialblock)
     self.func = func
     self.signature = code.signature
     self.defaults = func.__defaults__ or ()
Example #3
0
 def __init__(self, func, code):
     from rpython.flowspace.flowcontext import SpamBlock
     locals = [None] * code.co_nlocals
     for i in range(code.formalargcount):
         locals[i] = Variable(code.co_varnames[i])
     state = FrameState(locals, [], None, [], 0)
     initialblock = SpamBlock(state)
     unsafe = False
     if func.func_doc and func.func_doc.lstrip().startswith('UNSAFE'):
         unsafe = True
     super(PyGraph, self).__init__(self._sanitize_funcname(func), initialblock, unsafe=unsafe)
     self.func = func
     self.signature = code.signature
     self.defaults = func.func_defaults or ()
Example #4
0
 def getstate(self, next_offset):
     return FrameState(self.locals_w[:], self.stack[:],
             self.last_exception, self.blockstack[:], next_offset)