Browse Source

lib/db, lib/model: Code simplifications (#6484)

NamespacedKV.prefixedKey is still small enough to be inlined.
greatroar 5 years ago
parent
commit
2f26a95973
3 changed files with 6 additions and 16 deletions
  1. 3 8
      lib/db/namespaced.go
  2. 1 1
      lib/db/namespaced_test.go
  3. 2 7
      lib/model/folder_sendrecv.go

+ 3 - 8
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

+ 1 - 1
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
 	}

+ 2 - 7
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)
 	}