浏览代码

refine error handling in byte reader

Darien Raymond 8 年之前
父节点
当前提交
4e8e15d528
共有 1 个文件被更改,包括 6 次插入6 次删除
  1. 6 6
      common/buf/reader.go

+ 6 - 6
common/buf/reader.go

@@ -46,7 +46,7 @@ func (v *BytesToBufferReader) Read() (*Buffer, error) {
 type BufferToBytesReader struct {
 	stream  Reader
 	current *Buffer
-	eof     bool
+	err     error
 }
 
 // Fill fills in the internal buffer.
@@ -55,20 +55,20 @@ func (v *BufferToBytesReader) Fill() {
 	b, err := v.stream.Read()
 	v.current = b
 	if err != nil {
-		v.eof = true
+		v.err = err
 		v.current = nil
 	}
 }
 
 func (v *BufferToBytesReader) Read(b []byte) (int, error) {
-	if v.eof {
-		return 0, io.EOF
+	if v.err != nil {
+		return 0, v.err
 	}
 
 	if v.current == nil {
 		v.Fill()
-		if v.eof {
-			return 0, io.EOF
+		if v.err != nil {
+			return 0, v.err
 		}
 	}
 	nBytes, err := v.current.Read(b)