Rémi Bernon : windowscodecs: Use IWICComponentFactory_CreateStream in GetReaderByIndex.

Alexandre Julliard julliard at winehq.org
Fri Jan 22 15:59:14 CST 2021


Module: wine
Branch: master
Commit: 3c6cf6ef2c3c919ef82de28a634a22f70ce8312a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=3c6cf6ef2c3c919ef82de28a634a22f70ce8312a

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Wed Jan 20 10:30:06 2021 +0100

windowscodecs: Use IWICComponentFactory_CreateStream in GetReaderByIndex.

Instead of StreamImpl_Create.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Esme Povirk <esme at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/windowscodecs/decoder.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/dlls/windowscodecs/decoder.c b/dlls/windowscodecs/decoder.c
index 5970a44cd53..b05d50dfea9 100644
--- a/dlls/windowscodecs/decoder.c
+++ b/dlls/windowscodecs/decoder.c
@@ -595,7 +595,7 @@ static HRESULT WINAPI CommonDecoderFrame_Block_GetReaderByIndex(IWICMetadataBloc
 {
     CommonDecoderFrame *This = impl_from_IWICMetadataBlockReader(iface);
     HRESULT hr;
-    IWICComponentFactory* factory;
+    IWICComponentFactory* factory = NULL;
     IWICStream* stream;
 
     TRACE("%p,%d,%p\n", iface, nIndex, ppIMetadataReader);
@@ -609,7 +609,10 @@ static HRESULT WINAPI CommonDecoderFrame_Block_GetReaderByIndex(IWICMetadataBloc
         hr = E_INVALIDARG;
 
     if (SUCCEEDED(hr))
-        hr = StreamImpl_Create(&stream);
+        hr = create_instance(&CLSID_WICImagingFactory, &IID_IWICComponentFactory, (void**)&factory);
+
+    if (SUCCEEDED(hr))
+        hr = IWICComponentFactory_CreateStream(factory, &stream);
 
     if (SUCCEEDED(hr))
     {
@@ -664,23 +667,17 @@ static HRESULT WINAPI CommonDecoderFrame_Block_GetReaderByIndex(IWICMetadataBloc
         }
         else
         {
-            if (SUCCEEDED(hr))
-                hr = create_instance(&CLSID_WICImagingFactory, &IID_IWICComponentFactory, (void**)&factory);
-
-            if (SUCCEEDED(hr))
-            {
-                hr = IWICComponentFactory_CreateMetadataReaderFromContainer(factory,
-                    &This->parent->decoder_info.block_format, NULL,
-                    This->metadata_blocks[nIndex].options & DECODER_BLOCK_OPTION_MASK,
-                    (IStream*)stream, ppIMetadataReader);
-
-                IWICComponentFactory_Release(factory);
-            }
+            hr = IWICComponentFactory_CreateMetadataReaderFromContainer(factory,
+                &This->parent->decoder_info.block_format, NULL,
+                This->metadata_blocks[nIndex].options & DECODER_BLOCK_OPTION_MASK,
+                (IStream*)stream, ppIMetadataReader);
         }
 
         IWICStream_Release(stream);
     }
 
+    if (factory) IWICComponentFactory_Release(factory);
+
     if (FAILED(hr))
         *ppIMetadataReader = NULL;
 




More information about the wine-cvs mailing list