Index: src/images/SkImageDecoder_libgif.cpp |
diff --git a/src/images/SkImageDecoder_libgif.cpp b/src/images/SkImageDecoder_libgif.cpp |
index 0701eb68ae57022f97463d10c39ab858be4e030f..fa12301e9938523ffcac1f2ba41e2cb127c20989 100644 |
--- a/src/images/SkImageDecoder_libgif.cpp |
+++ b/src/images/SkImageDecoder_libgif.cpp |
@@ -229,6 +229,15 @@ static void sanitize_indexed_bitmap(SkBitmap* bm) { |
} |
} |
+int close_gif(GifFileType*); // This function is a template argument, so can't be static. |
+int close_gif(GifFileType* gif) { |
+#if GIFLIB_MAJOR < 5 || (GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0) |
+ return DGifCloseFile(gif); |
+#else |
+ return DGifCloseFile(gif, NULL); |
+#endif |
+} |
+ |
SkImageDecoder::Result SkGIFImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* bm, Mode mode) { |
#if GIFLIB_MAJOR < 5 |
GifFileType* gif = DGifOpen(sk_stream, DecodeCallBackProc); |
@@ -239,7 +248,7 @@ SkImageDecoder::Result SkGIFImageDecoder::onDecode(SkStream* sk_stream, SkBitmap |
return error_return(*bm, "DGifOpen"); |
} |
- SkAutoTCallIProc<GifFileType, DGifCloseFile> acp(gif); |
+ SkAutoTCallIProc<GifFileType, close_gif> acp(gif); |
SavedImage temp_save; |
temp_save.ExtensionBlocks=NULL; |