This is the relevant change. The old code logged a warning when the byte counts didn't line up; now we explicitly call `fill()`.