def UnsetAll(self):
    """Reverses all the Set() calls, restoring things to their original
    definition.  Its okay to call UnsetAll() repeatedly, as later calls have
    no effect if no Set() calls have been made.

    """
    # Undo calls to Set() in reverse order, in case Set() was called on the
    # same arguments repeatedly (want the original call to be last one undone)
    self.cache.reverse()

    for (parent, old_child, child_name) in self.cache:
      setattr(parent, child_name, old_child)
    self.cache = []
Reverses all the Set() calls, restoring things to their original
    definition.  Its okay to call UnsetAll() repeatedly, as later calls have
    no effect if no Set() calls have been made.

    
deps/protobuf/python/stubout.py