[8u60] Request for approval 8077982: GIFLIB upgrade

Andrew Hughes gnu.andrew at redhat.com
Wed May 6 15:32:59 UTC 2015


----- Original Message -----
> Hello,
> 
> This is a request for approval to backport a fix from the jdk9 to the
> jdk8u-dev repository.
> Changes applies cleanly to jdk8u-dev after path reshuffling.
> 
> The bug: https://bugs.openjdk.java.net/browse/JDK-8077982
> The fix: http://hg.openjdk.java.net/jdk9/client/jdk/rev/5bf5794f6193
> The review:
> http://mail.openjdk.java.net/pipermail/awt-dev/2015-April/009269.html
> 
> --
> Thanks,
> 
> Alexander.
> 
> 

The splashscreen changes, such as:

@@ -310,7 +296,7 @@
     free(pBitmapBits);
     free(pOldBitmapBits);
 
-    DGifCloseFile(gif);
+    DGifCloseFile(gif, NULL);
 
     return 1;
 }
@@ -318,7 +304,7 @@
 int
 SplashDecodeGifStream(Splash * splash, SplashStream * stream)
 {
-    GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc);
+    GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, NULL);
 
     if (!gif)
         return 0;

will break system giflib builds with versions older than 5.

In fixing this in IcedTea, we added #ifdefs to this code.

 {
+#if GIFLIB_MAJOR >= 5
+    int error = 0;
+    GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc, &error);
+
+    if (error)
+	return 0;
+#else
     GifFileType *gif = DGifOpen((void *) stream, SplashStreamGifInputFunc);
 
     if (!gif)
         return 0;
+#endif

+#if GIFLIB_MAJOR > 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR >= 1)
+    int error = 0;
+    DGifCloseFile(gif, &error);
+    if (error)
+        return 0;
+#else
     DGifCloseFile(gif);
+#endif

-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: ed25519/35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222

PGP Key: rsa4096/248BDC07 (hkp://keys.gnupg.net)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07



More information about the jdk8u-dev mailing list