GIFImageReader: fix tautological compare
authorhans@chromium.org <hans@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 25 Sep 2012 17:12:02 +0000 (17:12 +0000)
committerhans@chromium.org <hans@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 25 Sep 2012 17:12:02 +0000 (17:12 +0000)
https://bugs.webkit.org/show_bug.cgi?id=97563

Reviewed by Adam Barth.

The frame_reader->disposal_method field is of type
ImageFrame::FrameDisposalMethod, which has a range of 0--3. Therefore,
recent versions of Clang concludes that the expression
frame_reader->disposal_method == 4
will never be true, and warns about it.

This patch fixes the code by doing the comparison before storing the
value in the enum.

No new functionality, no new tests.

* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@129523 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp

index bf45f9c..feb28c0 100644 (file)
@@ -1,3 +1,24 @@
+2012-09-25  Hans Wennborg  <hans@chromium.org>
+
+        GIFImageReader: fix tautological compare
+        https://bugs.webkit.org/show_bug.cgi?id=97563
+
+        Reviewed by Adam Barth.
+
+        The frame_reader->disposal_method field is of type
+        ImageFrame::FrameDisposalMethod, which has a range of 0--3. Therefore,
+        recent versions of Clang concludes that the expression
+        frame_reader->disposal_method == 4
+        will never be true, and warns about it.
+
+        This patch fixes the code by doing the comparison before storing the
+        value in the enum.
+
+        No new functionality, no new tests.
+
+        * platform/image-decoders/gif/GIFImageReader.cpp:
+        (GIFImageReader::read):
+
 2012-09-25  Tommy Widenflycht  <tommyw@google.com>
 
         MediaStream API: Update getUserMedia to match the latest specification
index 0ca96e3..7414e98 100644 (file)
@@ -656,10 +656,11 @@ bool GIFImageReader::read(const unsigned char *buf, unsigned len,
         }
         // NOTE: This relies on the values in the FrameDisposalMethod enum
         // matching those in the GIF spec!
-        frame_reader->disposal_method = (WebCore::ImageFrame::FrameDisposalMethod)(((*q) >> 2) & 0x7);
+        int disposal_method = ((*q) >> 2) & 0x7;
+        frame_reader->disposal_method = (WebCore::ImageFrame::FrameDisposalMethod)disposal_method;
         // Some specs say 3rd bit (value 4), other specs say value 3
         // Let's choose 3 (the more popular)
-        if (frame_reader->disposal_method == 4)
+        if (disposal_method == 4)
           frame_reader->disposal_method = WebCore::ImageFrame::DisposeOverwritePrevious;
         frame_reader->delay_time = GETINT16(q + 1) * 10;
       }