From 9ce7f8dc5c6f7ff4d00dfc37bf589fb1a0e96b56 Mon Sep 17 00:00:00 2001 From: H0llyW00dzZ Date: Fri, 24 Jan 2025 05:18:55 +0000 Subject: [PATCH] Improve Performance [Client] [ListMessages] [Grab Body] Optimize Memory Usage (#3) - [+] fix(list_messages.go): optimize buffer handling in ListMessages function by resetting buffer before putting it back in the pool Reviewed-on: https://git.b0zal.io/H0llyW00dzZ/imap/pulls/3 Co-authored-by: H0llyW00dzZ Co-committed-by: H0llyW00dzZ --- client/list_messages.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/client/list_messages.go b/client/list_messages.go index 8058f5b..728e43c 100644 --- a/client/list_messages.go +++ b/client/list_messages.go @@ -70,12 +70,11 @@ func (c *IMAPClient) ListMessages(mailbox string, numMessages uint32, config Mes if config.GrabBody { for _, literal := range msg.Body { buf := bytebufferpool.Get() - defer bytebufferpool.Put(buf) - - _, err := buf.ReadFrom(literal) - if err == nil { + if _, err := buf.ReadFrom(literal); err == nil { details.Body = buf.String() } + buf.Reset() // Reset the buffer before returning it to the pool. + bytebufferpool.Put(buf) } } results = append(results, details)