Example #1
0
 def _visitor_walk_recursive(self, instbox, visitor, optimizer):
     # we don't store the lengthvalue in guards, because the
     # guard-failed code starts with a regular STR_CONCAT again
     leftbox = self.vleft
     rightbox = self.vright
     visitor.register_virtual_fields(instbox, [leftbox, rightbox])
     leftinfo = optimizer.getptrinfo(leftbox)
     rightinfo = optimizer.getptrinfo(rightbox)
     if leftinfo and leftinfo.is_virtual():
         leftinfo.visitor_walk_recursive(leftbox, visitor, optimizer)
     if rightinfo and rightinfo.is_virtual():
         rightinfo.visitor_walk_recursive(rightbox, visitor, optimizer)
Example #2
0
 def _visitor_walk_recursive(self, instbox, visitor, optimizer):
     boxes = [self.s, self.start, self.lgtop]
     visitor.register_virtual_fields(instbox, boxes)
     opinfo = optimizer.getptrinfo(self.s)
     if opinfo and opinfo.is_virtual():
         opinfo.visitor_walk_recursive(self.s, visitor, optimizer)