From 4f16c2f791afc902438322d1eae208bc5d4deefb Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 12 Jun 2012 15:22:27 +0900 Subject: [PATCH] windowscodecs: Reimplement TiffDecoder_GetFrameCount using TIFFNumberOfDirectories. --- dlls/windowscodecs/tiffformat.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c index 1040fa67a09..66f65d1aeb2 100644 --- a/dlls/windowscodecs/tiffformat.c +++ b/dlls/windowscodecs/tiffformat.c @@ -58,7 +58,7 @@ static void *libtiff_handle; #define MAKE_FUNCPTR(f) static typeof(f) * p##f MAKE_FUNCPTR(TIFFClientOpen); MAKE_FUNCPTR(TIFFClose); -MAKE_FUNCPTR(TIFFCurrentDirectory); +MAKE_FUNCPTR(TIFFNumberOfDirectories); MAKE_FUNCPTR(TIFFGetField); MAKE_FUNCPTR(TIFFIsByteSwapped); MAKE_FUNCPTR(TIFFReadDirectory); @@ -89,7 +89,7 @@ static void *load_libtiff(void) } LOAD_FUNCPTR(TIFFClientOpen); LOAD_FUNCPTR(TIFFClose); - LOAD_FUNCPTR(TIFFCurrentDirectory); + LOAD_FUNCPTR(TIFFNumberOfDirectories); LOAD_FUNCPTR(TIFFGetField); LOAD_FUNCPTR(TIFFIsByteSwapped); LOAD_FUNCPTR(TIFFReadDirectory); @@ -662,8 +662,7 @@ static HRESULT WINAPI TiffDecoder_GetFrameCount(IWICBitmapDecoder *iface, } EnterCriticalSection(&This->lock); - while (pTIFFReadDirectory(This->tiff)) { } - *pCount = pTIFFCurrentDirectory(This->tiff)+1; + *pCount = pTIFFNumberOfDirectories(This->tiff); LeaveCriticalSection(&This->lock); TRACE("(%p) <-- %i\n", iface, *pCount);