Micro optimisation

This commit is contained in:
Kovid Goyal
2025-10-07 09:23:22 +05:30
parent 328745cad9
commit 224ccb170a

View File

@@ -287,21 +287,27 @@ func (dc *DiskCache) add(key string, items map[string][]byte) (err error) {
for x, data := range items { for x, data := range items {
p := filepath.Join(base, x) p := filepath.Join(base, x)
var before int64 var before int64
exists := false
if s, err := os.Stat(p); err == nil { if s, err := os.Stat(p); err == nil {
before = s.Size() before = s.Size()
exists = true
} }
if len(data) == 0 { if len(data) == 0 {
if err = os.Remove(p); err != nil { if exists {
if !os.IsNotExist(err) { if err = os.Remove(p); err != nil {
return if !os.IsNotExist(err) {
return
}
err = nil
} }
err = nil changed -= before
} }
changed -= before
} else { } else {
// unlink the file so that writing to it does not change a // unlink the file so that writing to it does not change a
// previously linked copy created by get() // previously linked copy created by get()
_ = os.Remove(p) if exists {
_ = os.Remove(p)
}
if err = os.WriteFile(p, data, 0o700); err != nil { if err = os.WriteFile(p, data, 0o700); err != nil {
return return
} }