Skip to content

Commit

Permalink
os: ReadFile: don't check for re-allocation in the first iteration
Browse files Browse the repository at this point in the history
At the beginning of the for-loop iteration cap(data) > len(data) always.
Therefore, in the first iteration, this check becomes unnecessary.
we can move this check to after the read operation.

Change-Id: I205e4a842ced74f31124b45a39b70523b56ad840
GitHub-Last-Rev: 2fdf25dff2e9984d3a8f8e5e612ea802c88e88a1
GitHub-Pull-Request: golang/go#60473
Reviewed-on: https://go-review.googlesource.com/c/go/+/498915
Reviewed-by: Rob Pike <[email protected]>
Reviewed-by: Bryan Mills <[email protected]>
Run-TryBot: Rob Pike <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
Run-TryBot: Ian Lance Taylor <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
Auto-Submit: Ian Lance Taylor <[email protected]>
  • Loading branch information
Azhovan authored and gopherbot committed Jul 25, 2023
1 parent df0a129 commit a3a9b10
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/os/file.go
Original file line number Diff line number Diff line change
Expand Up @@ -725,10 +725,6 @@ func ReadFile(name string) ([]byte, error) {

data := make([]byte, 0, size)
for {
if len(data) >= cap(data) {
d := append(data[:cap(data)], 0)
data = d[:len(data)]
}
n, err := f.Read(data[len(data):cap(data)])
data = data[:len(data)+n]
if err != nil {
Expand All @@ -737,6 +733,11 @@ func ReadFile(name string) ([]byte, error) {
}
return data, err
}

if len(data) >= cap(data) {
d := append(data[:cap(data)], 0)
data = d[:len(data)]
}
}
}

Expand Down

0 comments on commit a3a9b10

Please sign in to comment.