in lib/src/hash_sink.dart [110:127]
void _iterate() {
var pendingDataBytes = _pendingData.buffer.asByteData();
var pendingDataChunks = _pendingData.length ~/ _currentChunk.lengthInBytes;
for (var i = 0; i < pendingDataChunks; i++) {
// Copy words from the pending data buffer into the current chunk buffer.
for (var j = 0; j < _currentChunk.length; j++) {
_currentChunk[j] = pendingDataBytes.getUint32(
i * _currentChunk.lengthInBytes + j * bytesPerWord, _endian);
}
// Run the hash function on the current chunk.
updateHash(_currentChunk);
}
// Remove all pending data up to the last clean chunk break.
_pendingData.removeRange(
0, pendingDataChunks * _currentChunk.lengthInBytes);
}