`BMO_iter_as_array()` may fill less items than requested in given array, so we have to update number of items to work on from its returned value, otherwise code might try to use uninitialized memory.
`BMO_iter_as_array()` may fill less items than requested in given array, so we have to update number of items to work on from its returned value, otherwise code might try to use uninitialized memory.