diff --git a/patches/windowscodecs-TIFF_Support/0015-windowscodecs-Tolerate-partial-reads-in-the-IFD-meta.patch b/patches/windowscodecs-TIFF_Support/0015-windowscodecs-Tolerate-partial-reads-in-the-IFD-meta.patch index fa5fd3eb..59f34867 100644 --- a/patches/windowscodecs-TIFF_Support/0015-windowscodecs-Tolerate-partial-reads-in-the-IFD-meta.patch +++ b/patches/windowscodecs-TIFF_Support/0015-windowscodecs-Tolerate-partial-reads-in-the-IFD-meta.patch @@ -1,18 +1,18 @@ -From 8348f9700da32b1d21f7fab70697ce65414ade4b Mon Sep 17 00:00:00 2001 +From bae2039e857a7304d26bbdf4f2e7ba30c4203ee7 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Fri, 16 Dec 2016 18:08:51 +0800 Subject: [PATCH] windowscodecs: Tolerate partial reads in the IFD metadata loader. --- - dlls/windowscodecs/metadatahandler.c | 51 ++++++++++++---------------- - 1 file changed, 22 insertions(+), 29 deletions(-) + dlls/windowscodecs/metadatahandler.c | 37 +++++++++++----------------- + 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/dlls/windowscodecs/metadatahandler.c b/dlls/windowscodecs/metadatahandler.c -index 128514f6a31..847a097d479 100644 +index 6d519c0f3cd..3960beac954 100644 --- a/dlls/windowscodecs/metadatahandler.c +++ b/dlls/windowscodecs/metadatahandler.c -@@ -716,7 +716,7 @@ static int tag_to_vt(SHORT tag) +@@ -720,7 +720,7 @@ static int tag_to_vt(SHORT tag) static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, MetadataItem *item, BOOL native_byte_order) { @@ -21,26 +21,8 @@ index 128514f6a31..847a097d479 100644 SHORT type; LARGE_INTEGER pos; HRESULT hr; -@@ -750,7 +750,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - { - item->value.vt |= VT_VECTOR; - item->value.caub.cElems = count; -- item->value.caub.pElems = HeapAlloc(GetProcessHeap(), 0, count); -+ item->value.caub.pElems = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count); - memcpy(item->value.caub.pElems, data, count); - } - break; -@@ -758,7 +758,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - - item->value.vt |= VT_VECTOR; - item->value.caub.cElems = count; -- item->value.caub.pElems = HeapAlloc(GetProcessHeap(), 0, count); -+ item->value.caub.pElems = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count); - if (!item->value.caub.pElems) return E_OUTOFMEMORY; - - pos.QuadPart = value; -@@ -768,9 +768,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - HeapFree(GetProcessHeap(), 0, item->value.caub.pElems); +@@ -772,9 +772,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, + CoTaskMemFree(item->value.caub.pElems); return hr; } - hr = IStream_Read(input, item->value.caub.pElems, count, &bytesread); @@ -49,28 +31,19 @@ index 128514f6a31..847a097d479 100644 + hr = IStream_Read(input, item->value.caub.pElems, count, NULL); + if (FAILED(hr)) { - HeapFree(GetProcessHeap(), 0, item->value.caub.pElems); + CoTaskMemFree(item->value.caub.pElems); return hr; -@@ -793,7 +792,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - { - item->value.vt |= VT_VECTOR; - item->value.caui.cElems = count; -- item->value.caui.pElems = HeapAlloc(GetProcessHeap(), 0, count * 2); -+ item->value.caui.pElems = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count * 2); - memcpy(item->value.caui.pElems, data, count * 2); - for (i = 0; i < count; i++) - SWAP_USHORT(item->value.caui.pElems[i]); -@@ -803,7 +802,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, +@@ -807,7 +806,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, item->value.vt |= VT_VECTOR; item->value.caui.cElems = count; -- item->value.caui.pElems = HeapAlloc(GetProcessHeap(), 0, count * 2); +- item->value.caui.pElems = CoTaskMemAlloc(count * 2); + item->value.caui.pElems = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count * 2); if (!item->value.caui.pElems) return E_OUTOFMEMORY; pos.QuadPart = value; -@@ -813,9 +812,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - HeapFree(GetProcessHeap(), 0, item->value.caui.pElems); +@@ -817,9 +816,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, + CoTaskMemFree(item->value.caui.pElems); return hr; } - hr = IStream_Read(input, item->value.caui.pElems, count * 2, &bytesread); @@ -79,19 +52,10 @@ index 128514f6a31..847a097d479 100644 + hr = IStream_Read(input, item->value.caui.pElems, count * 2, NULL); + if (FAILED(hr)) { - HeapFree(GetProcessHeap(), 0, item->value.caui.pElems); + CoTaskMemFree(item->value.caui.pElems); return hr; -@@ -836,7 +834,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - - item->value.vt |= VT_VECTOR; - item->value.caul.cElems = count; -- item->value.caul.pElems = HeapAlloc(GetProcessHeap(), 0, count * 4); -+ item->value.caul.pElems = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count * 4); - if (!item->value.caul.pElems) return E_OUTOFMEMORY; - - pos.QuadPart = value; -@@ -846,9 +844,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - HeapFree(GetProcessHeap(), 0, item->value.caul.pElems); +@@ -850,9 +848,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, + CoTaskMemFree(item->value.caul.pElems); return hr; } - hr = IStream_Read(input, item->value.caul.pElems, count * 4, &bytesread); @@ -100,9 +64,9 @@ index 128514f6a31..847a097d479 100644 + hr = IStream_Read(input, item->value.caul.pElems, count * 4, NULL); + if (FAILED(hr)) { - HeapFree(GetProcessHeap(), 0, item->value.caul.pElems); + CoTaskMemFree(item->value.caul.pElems); return hr; -@@ -874,8 +871,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, +@@ -878,8 +875,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, hr = IStream_Seek(input, pos, SEEK_SET, NULL); if (FAILED(hr)) return hr; @@ -112,17 +76,8 @@ index 128514f6a31..847a097d479 100644 if (hr != S_OK) return hr; item->value.uhVal.QuadPart = ull; -@@ -893,7 +889,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - { - item->value.vt |= VT_VECTOR; - item->value.cauh.cElems = count; -- item->value.cauh.pElems = HeapAlloc(GetProcessHeap(), 0, count * 8); -+ item->value.cauh.pElems = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count * 8); - if (!item->value.cauh.pElems) return E_OUTOFMEMORY; - - pos.QuadPart = value; -@@ -903,9 +899,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - HeapFree(GetProcessHeap(), 0, item->value.cauh.pElems); +@@ -907,9 +903,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, + CoTaskMemFree(item->value.cauh.pElems); return hr; } - hr = IStream_Read(input, item->value.cauh.pElems, count * 8, &bytesread); @@ -131,19 +86,10 @@ index 128514f6a31..847a097d479 100644 + hr = IStream_Read(input, item->value.cauh.pElems, count * 8, NULL); + if (FAILED(hr)) { - HeapFree(GetProcessHeap(), 0, item->value.cauh.pElems); + CoTaskMemFree(item->value.cauh.pElems); return hr; -@@ -923,7 +918,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - } - break; - case IFD_ASCII: -- item->value.pszVal = HeapAlloc(GetProcessHeap(), 0, count + 1); -+ item->value.pszVal = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count + 1); - if (!item->value.pszVal) return E_OUTOFMEMORY; - - if (count <= 4) -@@ -941,9 +936,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - HeapFree(GetProcessHeap(), 0, item->value.pszVal); +@@ -945,9 +940,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, + CoTaskMemFree(item->value.pszVal); return hr; } - hr = IStream_Read(input, item->value.pszVal, count, &bytesread); @@ -152,19 +98,10 @@ index 128514f6a31..847a097d479 100644 + hr = IStream_Read(input, item->value.pszVal, count, NULL); + if (FAILED(hr)) { - HeapFree(GetProcessHeap(), 0, item->value.pszVal); + CoTaskMemFree(item->value.pszVal); return hr; -@@ -958,7 +952,7 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - break; - } - -- item->value.blob.pBlobData = HeapAlloc(GetProcessHeap(), 0, count); -+ item->value.blob.pBlobData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count); - if (!item->value.blob.pBlobData) return E_OUTOFMEMORY; - - item->value.blob.cbSize = count; -@@ -977,9 +971,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, - HeapFree(GetProcessHeap(), 0, item->value.blob.pBlobData); +@@ -981,9 +975,8 @@ static HRESULT load_IFD_entry(IStream *input, const struct IFD_entry *entry, + CoTaskMemFree(item->value.blob.pBlobData); return hr; } - hr = IStream_Read(input, item->value.blob.pBlobData, count, &bytesread); @@ -173,8 +110,8 @@ index 128514f6a31..847a097d479 100644 + hr = IStream_Read(input, item->value.blob.pBlobData, count, NULL); + if (FAILED(hr)) { - HeapFree(GetProcessHeap(), 0, item->value.blob.pBlobData); + CoTaskMemFree(item->value.blob.pBlobData); return hr; -- -2.30.2 +2.40.1 diff --git a/patches/wined3d-Indexed_Vertex_Blending/definition b/patches/wined3d-Indexed_Vertex_Blending/definition index 18208cd7..2703eab3 100644 --- a/patches/wined3d-Indexed_Vertex_Blending/definition +++ b/patches/wined3d-Indexed_Vertex_Blending/definition @@ -1,2 +1,3 @@ Fixes: [39057] Support for Indexed Vertex Blending -Depends: wined3d-SWVP-shaders \ No newline at end of file +Depends: wined3d-SWVP-shaders +Disabled: True diff --git a/patches/wined3d-SWVP-shaders/definition b/patches/wined3d-SWVP-shaders/definition index 14176bc8..438f82e8 100644 --- a/patches/wined3d-SWVP-shaders/definition +++ b/patches/wined3d-SWVP-shaders/definition @@ -1 +1,2 @@ Fixes: [8051] Sims 2 demo exits prematurely +Disabled: True diff --git a/patches/wined3d-unset-flip-gdi/0001-wined3d-Dont-set-DDSCAPS_FLIP-for-gdi-renderer.patch b/patches/wined3d-unset-flip-gdi/0001-wined3d-Dont-set-DDSCAPS_FLIP-for-gdi-renderer.patch index c3c510bf..ed703d68 100644 --- a/patches/wined3d-unset-flip-gdi/0001-wined3d-Dont-set-DDSCAPS_FLIP-for-gdi-renderer.patch +++ b/patches/wined3d-unset-flip-gdi/0001-wined3d-Dont-set-DDSCAPS_FLIP-for-gdi-renderer.patch @@ -1,4 +1,4 @@ -From ce957e22bf43363a4e1d713f243bc062649013f0 Mon Sep 17 00:00:00 2001 +From abbe2c0dc6db19cbf029c6d3c7fcf449503b9f99 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Fri, 28 Jun 2019 14:27:10 +1000 Subject: [PATCH] wined3d: Dont set DDSCAPS_FLIP for gdi renderer @@ -11,11 +11,11 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47419 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c -index d06cbbbab0d..74766f710ae 100644 +index fc6c507f2b6..aa36a504f52 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c -@@ -4310,6 +4310,7 @@ static void adapter_gl_get_wined3d_caps(const struct wined3d_adapter *adapter, s - const struct wined3d_gl_info *gl_info = &adapter->gl_info; +@@ -4327,6 +4327,7 @@ static void adapter_gl_get_wined3d_caps(const struct wined3d_adapter *adapter, s + const struct wined3d_d3d_info *d3d_info = &adapter->d3d_info; caps->ddraw_caps.dds_caps |= WINEDDSCAPS_BACKBUFFER + | WINEDDSCAPS_FLIP @@ -23,10 +23,10 @@ index d06cbbbab0d..74766f710ae 100644 | WINEDDSCAPS_FRONTBUFFER | WINEDDSCAPS_3DDEVICE diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c -index 9a226edc65a..e76fc840f67 100644 +index a27e8e41d88..da3acdc572e 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c -@@ -564,6 +564,7 @@ static void adapter_vk_get_wined3d_caps(const struct wined3d_adapter *adapter, s +@@ -504,6 +504,7 @@ static void adapter_vk_get_wined3d_caps(const struct wined3d_adapter *adapter, s const struct wined3d_vk_info *vk_info = &adapter_vk->vk_info; caps->ddraw_caps.dds_caps |= WINEDDSCAPS_BACKBUFFER @@ -35,10 +35,10 @@ index 9a226edc65a..e76fc840f67 100644 | WINEDDSCAPS_FRONTBUFFER | WINEDDSCAPS_3DDEVICE diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c -index 167220a2299..9e27a76b95c 100644 +index 079dc70ad5b..b8fa53b10ac 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c -@@ -2409,8 +2409,7 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d_adapter *adapter, +@@ -2692,8 +2692,7 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d_adapter *adapter, caps->ddraw_caps.ssb_color_key_caps = ckey_caps; caps->ddraw_caps.ssb_fx_caps = fx_caps; @@ -49,5 +49,5 @@ index 167220a2299..9e27a76b95c 100644 | WINEDDSCAPS_PRIMARYSURFACE | WINEDDSCAPS_TEXTURE -- -2.29.2 +2.40.1 diff --git a/staging/upstream-commit b/staging/upstream-commit index d7c07123..7c814998 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -eac34b9c85e1d6da483eb64094fa0b316d1b01a5 +fddb79776871ee00adf4d78583135a5d96ca8c06