diff -wbBur leptonica-1.70/src/gifio.c leptonica-1.70.my/src/gifio.c --- leptonica-1.70/src/gifio.c 2013-11-24 01:57:40.000000000 +0400 +++ leptonica-1.70.my/src/gifio.c 2014-06-09 14:07:31.031928421 +0400 @@ -121,12 +121,12 @@ /* Read all the data, but use only the first image found */ if (DGifSlurp(gif) != GIF_OK) { - DGifCloseFile(gif); + DGifCloseFile(gif, NULL); return (PIX *)ERROR_PTR("failed to read GIF data", procName, NULL); } if (gif->SavedImages == NULL) { - DGifCloseFile(gif); + DGifCloseFile(gif, NULL); return (PIX *)ERROR_PTR("no images found in GIF", procName, NULL); } @@ -134,12 +134,12 @@ w = si.ImageDesc.Width; h = si.ImageDesc.Height; if (w <= 0 || h <= 0) { - DGifCloseFile(gif); + DGifCloseFile(gif, NULL); return (PIX *)ERROR_PTR("invalid image dimensions", procName, NULL); } if (si.RasterBits == NULL) { - DGifCloseFile(gif); + DGifCloseFile(gif, NULL); return (PIX *)ERROR_PTR("no raster data in GIF", procName, NULL); } @@ -151,7 +151,7 @@ gif_cmap = gif->SColorMap; } else { /* don't know where to take cmap from */ - DGifCloseFile(gif); + DGifCloseFile(gif, NULL); return (PIX *)ERROR_PTR("color map is missing", procName, NULL); } @@ -175,7 +175,7 @@ } if ((pixd = pixCreate(w, h, d)) == NULL) { - DGifCloseFile(gif); + DGifCloseFile(gif, NULL); pixcmapDestroy(&cmap); return (PIX *)ERROR_PTR("failed to allocate pixd", procName, NULL); } @@ -207,7 +207,7 @@ pixTransferAllData(pixd, &pixdi, 0, 0); } - DGifCloseFile(gif); + DGifCloseFile(gif, NULL); return pixd; } @@ -356,14 +356,14 @@ != GIF_OK) { pixDestroy(&pixd); GifFreeMapObject(gif_cmap); - EGifCloseFile(gif); + EGifCloseFile(gif, NULL); return ERROR_INT("failed to write screen description", procName, 1); } GifFreeMapObject(gif_cmap); /* not needed after this point */ if (EGifPutImageDesc(gif, 0, 0, w, h, FALSE, NULL) != GIF_OK) { pixDestroy(&pixd); - EGifCloseFile(gif); + EGifCloseFile(gif, NULL); return ERROR_INT("failed to image screen description", procName, 1); } @@ -371,13 +371,13 @@ wpl = pixGetWpl(pixd); if (d != 1 && d != 2 && d != 4 && d != 8) { pixDestroy(&pixd); - EGifCloseFile(gif); + EGifCloseFile(gif, NULL); return ERROR_INT("image depth is not in {1, 2, 4, 8}", procName, 1); } if ((gif_line = (GifByteType *)CALLOC(sizeof(GifByteType), w)) == NULL) { pixDestroy(&pixd); - EGifCloseFile(gif); + EGifCloseFile(gif, NULL); return ERROR_INT("mem alloc fail for data line", procName, 1); } @@ -406,7 +406,7 @@ if (EGifPutLine(gif, gif_line, w) != GIF_OK) { FREE(gif_line); pixDestroy(&pixd); - EGifCloseFile(gif); + EGifCloseFile(gif, NULL); return ERROR_INT("failed to write data line into GIF", procName, 1); } } @@ -422,7 +422,7 @@ FREE(gif_line); pixDestroy(&pixd); - EGifCloseFile(gif); + EGifCloseFile(gif, NULL); return 0; }