mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against fddb79776871ee00adf4d78583135a5d96ca8c06.
This commit is contained in:
parent
1942fb8bc1
commit
390b1f4127
@ -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 <dmitry@baikal.ru>
|
||||
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
|
||||
|
||||
|
@ -1,2 +1,3 @@
|
||||
Fixes: [39057] Support for Indexed Vertex Blending
|
||||
Depends: wined3d-SWVP-shaders
|
||||
Depends: wined3d-SWVP-shaders
|
||||
Disabled: True
|
||||
|
@ -1 +1,2 @@
|
||||
Fixes: [8051] Sims 2 demo exits prematurely
|
||||
Disabled: True
|
||||
|
@ -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 <hverbeet@codeweavers.com>
|
||||
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
|
||||
|
||||
|
@ -1 +1 @@
|
||||
eac34b9c85e1d6da483eb64094fa0b316d1b01a5
|
||||
fddb79776871ee00adf4d78583135a5d96ca8c06
|
||||
|
Loading…
Reference in New Issue
Block a user