diff options
author | Reto Brunner <reto@labrat.space> | 2021-02-08 08:40:07 +0100 |
---|---|---|
committer | Reto Brunner <reto@labrat.space> | 2021-02-08 08:40:07 +0100 |
commit | db6848fe1b77bc7f2a657231307d2a4271d41482 (patch) | |
tree | 1813b7a01427e6e161ca7f2bf197287fad85f75a /worker/notmuch | |
parent | 077063ba4ba3dbf0a7a43c58c73bc906ed4684d2 (diff) | |
download | aerc-db6848fe1b77bc7f2a657231307d2a4271d41482.tar.gz |
notmuch: don't read the full file into memory
Diffstat (limited to 'worker/notmuch')
-rw-r--r-- | worker/notmuch/message.go | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/worker/notmuch/message.go b/worker/notmuch/message.go index 82d00f3e..10fbabc1 100644 --- a/worker/notmuch/message.go +++ b/worker/notmuch/message.go @@ -3,10 +3,9 @@ package notmuch import ( - "bytes" + "bufio" "fmt" "io" - "io/ioutil" "os" "git.sr.ht/~sircmpwn/aerc/models" @@ -22,7 +21,7 @@ type Message struct { db *notmuch.DB } -// NewReader reads a message into memory and returns an io.Reader for it. +// NewReader returns a reader for a message func (m *Message) NewReader() (io.Reader, error) { name, err := m.Filename() if err != nil { @@ -32,12 +31,7 @@ func (m *Message) NewReader() (io.Reader, error) { if err != nil { return nil, err } - defer f.Close() - b, err := ioutil.ReadAll(f) - if err != nil { - return nil, err - } - return bytes.NewReader(b), nil + return bufio.NewReader(f), nil } // MessageInfo populates a models.MessageInfo struct for the message. |