From 5071f28d55978648ec138f58b3f393f5c0789cd8 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Sat, 2 Jan 2016 14:10:38 +0100 Subject: [PATCH] ReadCloser: Call close if reader implements it --- backend/mem_backend.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/mem_backend.go b/backend/mem_backend.go index 21d78846b..e757566e6 100644 --- a/backend/mem_backend.go +++ b/backend/mem_backend.go @@ -125,17 +125,21 @@ func memCreate(be *MemoryBackend) (Blob, error) { return blob, nil } -// ReadCloser wraps a reader and adds a noop Close method. +// ReadCloser wraps a reader and adds a noop Close method if rd does not implement io.Closer. func ReadCloser(rd io.Reader) io.ReadCloser { return readCloser{rd} } -// readCloser wraps a reader and adds a noop Close method. +// readCloser wraps a reader and adds a noop Close method if rd does not implement io.Closer. type readCloser struct { io.Reader } func (rd readCloser) Close() error { + if r, ok := rd.Reader.(io.Closer); ok { + return r.Close() + } + return nil }