Skip to content

Commit

Permalink
Reduce custom error allocation
Browse files Browse the repository at this point in the history
Zero allocation by using non-pointer error.

related google#69

name               old time/op    new time/op    delta
ParseBadLength-16    15.4ns ± 0%     3.5ns ± 0%   ~     (p=1.000 n=1+1)

name               old alloc/op   new alloc/op   delta
ParseBadLength-16     8.00B ± 0%     0.00B        ~     (p=1.000 n=1+1)

name               old allocs/op  new allocs/op  delta
ParseBadLength-16      1.00 ± 0%      0.00        ~     (p=1.000 n=1+1)
  • Loading branch information
johejo committed Jan 4, 2021
1 parent edef28d commit d1ba04a
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions uuid.go
Expand Up @@ -37,7 +37,7 @@ var rander = rand.Reader // random function

type invalidLengthError struct{ len int }

func (err *invalidLengthError) Error() string {
func (err invalidLengthError) Error() string {
return fmt.Sprintf("invalid UUID length: %d", err.len)
}

Expand Down Expand Up @@ -74,7 +74,7 @@ func Parse(s string) (UUID, error) {
}
return uuid, nil
default:
return uuid, &invalidLengthError{len(s)}
return uuid, invalidLengthError{len(s)}
}
// s is now at least 36 bytes long
// it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Expand Down Expand Up @@ -118,7 +118,7 @@ func ParseBytes(b []byte) (UUID, error) {
}
return uuid, nil
default:
return uuid, &invalidLengthError{len(b)}
return uuid, invalidLengthError{len(b)}
}
// s is now at least 36 bytes long
// it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Expand Down

0 comments on commit d1ba04a

Please sign in to comment.