internal int read_buf(byte[] buf, int start, int size)
{
int len = avail_in;
if (len > size)
len = size;
if (len == 0)
return 0;
avail_in -= len;
if (dstate.noheader == 0)
{
adler = _adler.adler32(adler, next_in, next_in_index, len);
}
Array.Copy(next_in, next_in_index, buf, start, len);
next_in_index += len;
total_in += len;
return len;
}