@michaelcahill, this is the rest of the change for
There are two changes here:
1. Instead of explicitly checking if we're looking at non-local data before growing the buffer, I've changed the buffer grow function to copy non-local data into place. This feels cleaner to me, if you're growing a buffer, and you currently point to non-local data, it seems intuitive that you'd want the original data and growth to happen in a local buffer.
This slightly complicates the buffer grow front-end, it has to check both the size and if the data is non-local to the buffer.
I've updated the three cases in the code where we care about this, the special-case code just goes away.
2. I set WT_ITEM.size to 0 in the buffer initialization routines, before calling the buffer grow function; I doubt it's necessary, but it seems safer to me.