Implementation of heap walking code where the caller passes a callback

I've set up the heap walking code to accept a callback provided by the caller.