The previous implementation was almost certainly a typo.
full_block_size is the maximum index in the encoded_block_sizes array,
and size is used as an index in this array. So now 1 <= size <=
full_block_size == 8 instead of 1 <= size <= sizeof(full_block_size) ==
size_of(size_t) == ? (maybe 4 on 32-bit systems!)