final void fallbackSort(final BZip2CompressorOutputStream.Data data,
                            final int last) {
        data.block[0] = data.block[last + 1];
        fallbackSort(data.fmap, data.block, last + 1);
        for (int i = 0; i < last + 1; i++) {
            --data.fmap[i];
        }
        for (int i = 0; i < last + 1; i++) {
            if (data.fmap[i] == -1) {
                data.fmap[i] = last;
                break;
            }
        }
    }
final void fallbackSort ( final BZip2CompressorOutputStream . Data data , final int last ) { data . block [ 0 ] = data . block [ last + 1 ] ; fallbackSort ( data . fmap , data . block , last + 1 ) ; for ( int i = 0 ; i < last + 1 ; i ++ ) { -- data . fmap [ i ] ; } for ( int i = 0 ; i < last + 1 ; i ++ ) { if ( data . fmap [ i ] == - 1 ) { data . fmap [ i ] = last ; break ; } } }
Adapt fallbackSort to the expected interface of the rest of the
code, in particular deal with the fact that block starts at
offset 1 (in libbzip2 1.0.6 it starts at 0).