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

NamespacedKV.prefixedKey is still small enough to be inlined.
This commit is contained in:
greatroar 2020-03-31 14:32:24 +02:00 committed by GitHub
parent 123941cf62
commit 2f26a95973
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 16 deletions

View File

@ -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

View File

@ -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
}

View File

@ -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)
}