Just to be a pain....  I've just seen that sort() always creates the fpos array anyway.

I suspect you were better off unconditionally creating it on a split.