windowscodecs: Reimplement TiffDecoder_GetFrameCount using TIFFNumberOfDirectories.

Dmitry Timoshkov dmitry at baikal.ru
Tue Jun 12 01:22:27 CDT 2012


---
 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 1040fa6..66f65d1 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);
-- 
1.7.10.1




More information about the wine-patches mailing list