aboutsummaryrefslogtreecommitdiff
path: root/src/image
diff options
context:
space:
mode:
authorLynn Boger <laboger@linux.vnet.ibm.com>2018-09-10 15:07:09 -0400
committerLynn Boger <laboger@linux.vnet.ibm.com>2018-09-11 15:14:56 +0000
commitaa4fc0e73654c0a8741d970bfca47c25125633cf (patch)
treea76a7e03ebdbebb83de72d0862d6c91b9996791b /src/image
parent9f2411894ba41d9032623cf637a62846397fec67 (diff)
downloadgo-aa4fc0e73654c0a8741d970bfca47c25125633cf.tar.gz
go-aa4fc0e73654c0a8741d970bfca47c25125633cf.zip
cmd/link,compress/zip,image/png: use binary.{Big,Little}Endian methods
Use the binary.{Big,Little}Endian integer encoding methods rather than variations found in local implementations. The functions in the binary package have been tested to ensure they inline correctly and don't add unnecessary bounds checking. Change-Id: Ie10111ca6edb7c11e8e5e21c58a5748ae99b7f87 Reviewed-on: https://go-review.googlesource.com/134375 Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Munday <mike.munday@ibm.com>
Diffstat (limited to 'src/image')
-rw-r--r--src/image/png/writer.go17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/image/png/writer.go b/src/image/png/writer.go
index 49f1ad2e7f..de8c28e919 100644
--- a/src/image/png/writer.go
+++ b/src/image/png/writer.go
@@ -7,6 +7,7 @@ package png
import (
"bufio"
"compress/zlib"
+ "encoding/binary"
"hash/crc32"
"image"
"image/color"
@@ -62,14 +63,6 @@ const (
// compression level, although that is not implemented yet.
)
-// Big-endian.
-func writeUint32(b []uint8, u uint32) {
- b[0] = uint8(u >> 24)
- b[1] = uint8(u >> 16)
- b[2] = uint8(u >> 8)
- b[3] = uint8(u >> 0)
-}
-
type opaquer interface {
Opaque() bool
}
@@ -108,7 +101,7 @@ func (e *encoder) writeChunk(b []byte, name string) {
e.err = UnsupportedError(name + " chunk is too large: " + strconv.Itoa(len(b)))
return
}
- writeUint32(e.header[:4], n)
+ binary.BigEndian.PutUint32(e.header[:4], n)
e.header[4] = name[0]
e.header[5] = name[1]
e.header[6] = name[2]
@@ -116,7 +109,7 @@ func (e *encoder) writeChunk(b []byte, name string) {
crc := crc32.NewIEEE()
crc.Write(e.header[4:8])
crc.Write(b)
- writeUint32(e.footer[:4], crc.Sum32())
+ binary.BigEndian.PutUint32(e.footer[:4], crc.Sum32())
_, e.err = e.w.Write(e.header[:8])
if e.err != nil {
@@ -131,8 +124,8 @@ func (e *encoder) writeChunk(b []byte, name string) {
func (e *encoder) writeIHDR() {
b := e.m.Bounds()
- writeUint32(e.tmp[0:4], uint32(b.Dx()))
- writeUint32(e.tmp[4:8], uint32(b.Dy()))
+ binary.BigEndian.PutUint32(e.tmp[0:4], uint32(b.Dx()))
+ binary.BigEndian.PutUint32(e.tmp[4:8], uint32(b.Dy()))
// Set bit depth and color type.
switch e.cb {
case cbG8: