Procházet zdrojové kódy

refine error handling in byte reader

Darien Raymond před 8 roky
rodič
revize
4e8e15d528
1 změnil soubory, kde provedl 6 přidání a 6 odebrání
  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)