From 2f26a9597355d1795c6e2bee4b53bf16de9e301e Mon Sep 17 00:00:00 2001 From: greatroar <61184462+greatroar@users.noreply.github.com> Date: Tue, 31 Mar 2020 14:32:24 +0200 Subject: [PATCH] lib/db, lib/model: Code simplifications (#6484) NamespacedKV.prefixedKey is still small enough to be inlined. --- lib/db/namespaced.go | 11 +++-------- lib/db/namespaced_test.go | 2 +- lib/model/folder_sendrecv.go | 9 ++------- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/lib/db/namespaced.go b/lib/db/namespaced.go index 18aaf292d..285799c04 100644 --- a/lib/db/namespaced.go +++ b/lib/db/namespaced.go @@ -17,20 +17,15 @@ import ( // a leveldb. type NamespacedKV struct { db *Lowlevel - prefix []byte + prefix string } // NewNamespacedKV returns a new NamespacedKV that lives in the namespace // specified by the prefix. func NewNamespacedKV(db *Lowlevel, prefix string) *NamespacedKV { - prefixBs := []byte(prefix) - // After the conversion from string the cap will be larger than the len (in Go 1.11.5, - // 32 bytes cap for small strings). We need to cut it down to ensure append() calls - // on the prefix make a new allocation. - prefixBs = prefixBs[:len(prefixBs):len(prefixBs)] return &NamespacedKV{ db: db, - prefix: prefixBs, + prefix: prefix, } } @@ -130,7 +125,7 @@ func (n NamespacedKV) Delete(key string) error { } func (n NamespacedKV) prefixedKey(key string) []byte { - return append(n.prefix, []byte(key)...) + return []byte(n.prefix + key) } // Well known namespaces that can be instantiated without knowing the key diff --git a/lib/db/namespaced_test.go b/lib/db/namespaced_test.go index 409cc2b19..868c12f0f 100644 --- a/lib/db/namespaced_test.go +++ b/lib/db/namespaced_test.go @@ -167,7 +167,7 @@ func reset(n *NamespacedKV) { } defer tr.Release() - it, err := tr.NewPrefixIterator(n.prefix) + it, err := tr.NewPrefixIterator([]byte(n.prefix)) if err != nil { return } diff --git a/lib/model/folder_sendrecv.go b/lib/model/folder_sendrecv.go index e76b5571d..3226c0bf2 100644 --- a/lib/model/folder_sendrecv.go +++ b/lib/model/folder_sendrecv.go @@ -1359,14 +1359,9 @@ func verifyBuffer(buf []byte, block protocol.BlockInfo) error { if len(buf) != int(block.Size) { return fmt.Errorf("length mismatch %d != %d", len(buf), block.Size) } - hf := sha256.New() - _, err := hf.Write(buf) - if err != nil { - return err - } - hash := hf.Sum(nil) - if !bytes.Equal(hash, block.Hash) { + hash := sha256.Sum256(buf) + if !bytes.Equal(hash[:], block.Hash) { return fmt.Errorf("hash mismatch %x != %x", hash, block.Hash) }