You shouldn't cross pools like this.  That BlameWalk object I was talking about in the interface definition clearly needs a RevWalk too, so that classes like this can ensure the parents are parsed under the same revision pool as the source commit.

We've already allocated the objects and setup pointers to the parents, we might as well just parse in-place and keep going rather than trying to create and destroy pools all of the time.