Since this is called from `available()` I think it should only count up to a buffer node containing a `-1` (end of stream).