aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bonventre <andybons@gmail.com>2015-06-19 13:29:58 -0400
committerNigel Tao <nigeltao@golang.org>2015-06-23 05:50:50 +0000
commit4bba6729f85a3f99fcb05d8e5cc2e180bc9d4a90 (patch)
tree769a9c791260f35a43065ec7feefa2ae75a65679
parentf2662f2c938f2f9fd21067169b2aaec89f8d0e9f (diff)
downloadgo-4bba6729f85a3f99fcb05d8e5cc2e180bc9d4a90.tar.xz
image/gif: set default loop count to 0 when app ext. is not present
It was otherwise not being preserved across specific Decode->Encode->Decode calls. Fixes #11287 Change-Id: I40602da7fa39ec67403bed52ff403f361c6171bb Reviewed-on: https://go-review.googlesource.com/11256 Reviewed-by: Nigel Tao <nigeltao@golang.org>
-rw-r--r--src/image/gif/reader.go1
-rw-r--r--src/image/gif/reader_test.go21
2 files changed, 21 insertions, 1 deletions
diff --git a/src/image/gif/reader.go b/src/image/gif/reader.go
index 80cbccb690..cf5af210a6 100644
--- a/src/image/gif/reader.go
+++ b/src/image/gif/reader.go
@@ -271,7 +271,6 @@ func (d *decoder) readHeaderAndScreenDescriptor() error {
}
}
// d.tmp[12] is the Pixel Aspect Ratio, which is ignored.
- d.loopCount = -1
return nil
}
diff --git a/src/image/gif/reader_test.go b/src/image/gif/reader_test.go
index 0d0017e5b8..c294195b6f 100644
--- a/src/image/gif/reader_test.go
+++ b/src/image/gif/reader_test.go
@@ -253,3 +253,24 @@ func TestPixelOutsidePaletteRange(t *testing.T) {
try(t, b.Bytes(), want)
}
}
+
+func TestLoopCount(t *testing.T) {
+ data := []byte("GIF89a000\x00000,0\x00\x00\x00\n\x00" +
+ "\n\x00\x80000000\x02\b\xf01u\xb9\xfdal\x05\x00;")
+ img, err := DecodeAll(bytes.NewReader(data))
+ if err != nil {
+ t.Fatal("DecodeAll:", err)
+ }
+ w := new(bytes.Buffer)
+ err = EncodeAll(w, img)
+ if err != nil {
+ t.Fatal("EncodeAll:", err)
+ }
+ img1, err := DecodeAll(w)
+ if err != nil {
+ t.Fatal("DecodeAll:", err)
+ }
+ if img.LoopCount != img1.LoopCount {
+ t.Errorf("loop count mismatch: %d vs %d", img.LoopCount, img1.LoopCount)
+ }
+}