'Read a pickled object representation from the open file.
Return the reconstituted object hierarchy specified in the file.'

def load(self):

    self.mark = object()
    self.stack = []
    self.append = self.stack.append
    read = self.read
    dispatch = self.dispatch
    try:
        while 1:
            key = read(1)
            dispatch[key](self)
    except _Stop as stopinst:
        return stopinst.value
