]> Cypherpunks repositories - gostls13.git/commitdiff
image/gif: set default loop count to 0 when app ext. is not present
authorAndrew Bonventre <andybons@gmail.com>
Fri, 19 Jun 2015 17:29:58 +0000 (13:29 -0400)
committerNigel Tao <nigeltao@golang.org>
Tue, 23 Jun 2015 05:50:50 +0000 (05:50 +0000)
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>
src/image/gif/reader.go
src/image/gif/reader_test.go

index 80cbccb6909ba24aeadd7da3ab9bee20a36aa7ba..cf5af210a609c1a8bbd93fac2e8a8cb815269eac 100644 (file)
@@ -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
 }
 
index 0d0017e5b809a50102113507bb0efedafb0479e6..c294195b6f7661a9ee3cdece9036524bc71a997c 100644 (file)
@@ -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)
+       }
+}