|
|
@@ -37,7 +37,7 @@ type ChunkStreamReader struct {
|
|
|
|
|
|
buffer []byte
|
|
|
leftOver buf.MultiBuffer
|
|
|
- leftOverSize uint16
|
|
|
+ leftOverSize int
|
|
|
}
|
|
|
|
|
|
func NewChunkStreamReader(sizeDecoder ChunkSizeDecoder, reader io.Reader) *ChunkStreamReader {
|
|
|
@@ -50,6 +50,7 @@ func NewChunkStreamReader(sizeDecoder ChunkSizeDecoder, reader io.Reader) *Chunk
|
|
|
|
|
|
func (r *ChunkStreamReader) readAtLeast(size int) error {
|
|
|
mb := r.leftOver
|
|
|
+ r.leftOver = nil
|
|
|
for mb.Len() < size {
|
|
|
extra, err := r.reader.Read()
|
|
|
if err != nil {
|
|
|
@@ -74,7 +75,7 @@ func (r *ChunkStreamReader) readSize() (uint16, error) {
|
|
|
}
|
|
|
|
|
|
func (r *ChunkStreamReader) Read() (buf.MultiBuffer, error) {
|
|
|
- size := int(r.leftOverSize)
|
|
|
+ size := r.leftOverSize
|
|
|
if size == 0 {
|
|
|
nextSize, err := r.readSize()
|
|
|
if err != nil {
|
|
|
@@ -94,7 +95,7 @@ func (r *ChunkStreamReader) Read() (buf.MultiBuffer, error) {
|
|
|
|
|
|
if size >= r.leftOver.Len() {
|
|
|
mb := r.leftOver
|
|
|
- r.leftOverSize = uint16(size - r.leftOver.Len())
|
|
|
+ r.leftOverSize = size - r.leftOver.Len()
|
|
|
r.leftOver = nil
|
|
|
return mb, nil
|
|
|
}
|