Skip to content

Commit

Permalink
fix: actually use the size hint in util_windows.go
Browse files Browse the repository at this point in the history
This code was broken, it computed the size hint to do nothing with it.
  • Loading branch information
Jorropo committed Oct 15, 2023
1 parent fa30377 commit fcf1a59
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions util_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ package flatfs

import (
"bytes"
"io"
"os"
"path/filepath"
"strconv"
Expand Down Expand Up @@ -83,19 +82,20 @@ func readFileOnce(filename string) ([]byte, error) {
defer f.Close()
// It's a good but not certain bet that FileInfo will tell us exactly how much to
// read, so let's try it but be prepared for the answer to be wrong.
var n int64 = bytes.MinRead
var n int = bytes.MinRead

if fi, err := f.Stat(); err == nil {
// As initial capacity for readAll, use Size + a little extra in case Size
// is zero, and to avoid another allocation after Read has filled the
// buffer. The readAll call will read into its allocated internal buffer
// cheaply. If the size was wrong, we'll either waste some space off the end
// or reallocate as needed, but in the overwhelmingly common case we'll get
// it just right.
if size := fi.Size() + bytes.MinRead; size > n {
n = size
if sz := int(fi.Size()); sz > n {
n = sz
}
}

return io.ReadAll(f)
var buf bytes.Buffer
buf.Grow(n)
_, err = buf.ReadFrom(f)
if err != nil {
return nil, err
}

return buf.Bytes(), nil
}

0 comments on commit fcf1a59

Please sign in to comment.