From 8532ccebba682d0a5d38f43d09ea2efb9b206926 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Wed, 30 Sep 2020 16:21:47 +0300 Subject: [PATCH] metadata: avoid allocations on delete Signed-off-by: Vasiliy Tolstov --- metadata/metadata.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/metadata/metadata.go b/metadata/metadata.go index ecf4a259..dedbd22a 100644 --- a/metadata/metadata.go +++ b/metadata/metadata.go @@ -28,7 +28,13 @@ func (md Metadata) Set(key, val string) { } func (md Metadata) Del(key string) { - delete(md, textproto.CanonicalMIMEHeaderKey(key)) + // fast path + if _, ok := md[key]; ok { + delete(md, key) + } else { + // slow path + delete(md, textproto.CanonicalMIMEHeaderKey(key)) + } } // Copy makes a copy of the metadata