Module: wine
Branch: master
Commit: 202acc52eb487b5870aabef854750c620799a178
URL: https://gitlab.winehq.org/wine/wine/-/commit/202acc52eb487b5870aabef854750c…
Author: Dmitry Timoshkov <dmitry(a)baikal.ru>
Date: Mon Jan 25 15:05:03 2016 +0800
widl: Set the lowest bit in the param name to indicate whether type description follows the name.
It looks like the lowest bit in the param name offset actually indicates
whether type description follows the name, and since the name offsets are
always aligned that makes sense.
This makes oleview.exe from PSDK running under Windows7 correctly show mix
of different very complex and relatively simple type descriptions generated
by widl's SLTG generator.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
tools/widl/write_sltg.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/widl/write_sltg.c b/tools/widl/write_sltg.c
index 96a557a3966..c168a76adf0 100644
--- a/tools/widl/write_sltg.c
+++ b/tools/widl/write_sltg.c
@@ -1240,7 +1240,6 @@ static int add_func_desc(struct sltg_typelib *typelib, struct sltg_data *data, v
short name, type_offset;
name = base_offset != -1 ? add_name(&typelib->name_table, arg->name) : -1;
- append_data(data, &name, sizeof(name));
if (arg_data[i].size > sizeof(short))
{
@@ -1248,8 +1247,12 @@ static int add_func_desc(struct sltg_typelib *typelib, struct sltg_data *data, v
arg_offset += arg_data[i].size;
}
else
+ {
+ name |= 1;
type_offset = *(short *)arg_data[i].data;
+ }
+ append_data(data, &name, sizeof(name));
append_data(data, &type_offset, sizeof(type_offset));
if (base_offset != -1)
Module: wine
Branch: master
Commit: f97e12de40295719e9b6eeed1d10007d8d01293c
URL: https://gitlab.winehq.org/wine/wine/-/commit/f97e12de40295719e9b6eeed1d1000…
Author: Danyil Blyschak <dblyschak(a)codeweavers.com>
Date: Thu Apr 18 10:33:18 2024 -0500
mfreadwrite: Store result of object activation in stream transform.
In source_reader_create_transform(), store the result of
IMFActivate_ActivateObject() so that in the event of failure, resources
are freed and an appropriate HRESULT is returned.
Previously, if every object's activation failed, the last part of the
function was not aware of this.
---
dlls/mfreadwrite/reader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c
index 11eac81d2ca..96bb316ac85 100644
--- a/dlls/mfreadwrite/reader.c
+++ b/dlls/mfreadwrite/reader.c
@@ -2011,7 +2011,7 @@ static HRESULT source_reader_create_transform(struct source_reader *reader, BOOL
{
IMFMediaType *media_type;
- if (FAILED(IMFActivate_ActivateObject(activates[i], &IID_IMFTransform, (void **)&transform)))
+ if (FAILED(hr = IMFActivate_ActivateObject(activates[i], &IID_IMFTransform, (void **)&transform)))
continue;
if (SUCCEEDED(hr = IMFTransform_SetInputType(transform, 0, input_type, 0))
&& SUCCEEDED(hr = IMFTransform_GetInputCurrentType(transform, 0, &media_type)))