Module: wine
Branch: master
Commit: 5a32339dc858d898ac2fa1c948306a2ec271c68b
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5a32339dc858d898ac2fa1c9…
Author: Arkadiusz Hiler <ahiler(a)codeweavers.com>
Date: Thu Jan 21 18:11:13 2021 +0200
hidclass.sys: Calculate correct bitCount for vendor-specific 1 bit repeated elements.
DualSense controller's report descriptor comes with a 1 bit vendor specific
(Usage Page & Usage) element repeated through 'report count'.
Those were correctly interpreted as non-ranged buttons (exposed as button caps
with appropriate usage values) but their size was incorrectly assumed to be 1
ignoring the 'report count'.
Because of that the InputReportByteLength is miscalculated as 63 instead of
64. If the buffer passed to HidD_GetInputReport() is allocated using that
value the call will fail with ERROR_INSUFFICIENT_BUFFER.
This change fixes the above and cleans up the code a bit so the size for each
case is calculated directly from the count and size instead of using the
values that were derived from them.
Signed-off-by: Arkadiusz Hiler <ahiler(a)codeweavers.com>
Signed-off-by: Aric Stewart <aric(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/hidclass.sys/descriptor.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/dlls/hidclass.sys/descriptor.c b/dlls/hidclass.sys/descriptor.c
index 56e4da4ad10..c02988494fd 100644
--- a/dlls/hidclass.sys/descriptor.c
+++ b/dlls/hidclass.sys/descriptor.c
@@ -698,6 +698,10 @@ static void build_elements(WINE_HID_REPORT *wine_report, WINE_HID_ELEMENT *elems
}
wine_element->valueStartBit = wine_report->bitSize;
+
+ wine_element->bitCount = (feature->caps.BitSize * feature->caps.ReportCount);
+ wine_report->bitSize += wine_element->bitCount;
+
if (feature->caps.BitSize == 1)
{
wine_element->ElementType = ButtonElement;
@@ -713,8 +717,6 @@ static void build_elements(WINE_HID_REPORT *wine_report, WINE_HID_ELEMENT *elems
wine_element->caps.button.IsAbsolute = feature->IsAbsolute;
if (wine_element->caps.button.IsRange)
{
- wine_element->bitCount = (feature->caps.u.Range.UsageMax - feature->caps.u.Range.UsageMin) + 1;
- wine_report->bitSize += wine_element->bitCount;
wine_element->caps.button.u.Range.UsageMin = feature->caps.u.Range.UsageMin;
wine_element->caps.button.u.Range.UsageMax = feature->caps.u.Range.UsageMax;
wine_element->caps.button.u.Range.StringMin = feature->caps.u.Range.StringMin;
@@ -727,8 +729,6 @@ static void build_elements(WINE_HID_REPORT *wine_report, WINE_HID_ELEMENT *elems
}
else
{
- wine_report->bitSize++;
- wine_element->bitCount = 1;
wine_element->caps.button.u.NotRange.Usage = feature->caps.u.NotRange.Usage;
wine_element->caps.button.u.NotRange.Reserved1 = feature->caps.u.NotRange.Usage;
wine_element->caps.button.u.NotRange.StringIndex = feature->caps.u.NotRange.StringIndex;
@@ -756,8 +756,6 @@ static void build_elements(WINE_HID_REPORT *wine_report, WINE_HID_ELEMENT *elems
wine_element->caps.value.HasNull = feature->HasNull;
wine_element->caps.value.BitSize = feature->caps.BitSize;
wine_element->caps.value.ReportCount = feature->caps.ReportCount;
- wine_element->bitCount = (feature->caps.BitSize * wine_element->caps.value.ReportCount);
- wine_report->bitSize += wine_element->bitCount;
wine_element->caps.value.UnitsExp = feature->caps.UnitsExp;
wine_element->caps.value.Units = feature->caps.Units;
wine_element->caps.value.LogicalMin = feature->caps.LogicalMin;
Module: wine
Branch: master
Commit: 90107bba944a1da286e9ebd246ab3fd5dd7cb115
URL: https://source.winehq.org/git/wine.git/?a=commit;h=90107bba944a1da286e9ebd2…
Author: Zebediah Figura <z.figura12(a)gmail.com>
Date: Wed Jan 20 18:58:52 2021 -0600
winegstreamer: Keep the stream in paused state for its entire lifetime.
This noticeably improves stream startup time. The process of typefinding and
negotiation takes about 70 ms for a simple test file on one machine, and this
is currently done twice. This patch replaces the second instance with a simple
seek, which takes less than 10 ms.
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/winegstreamer/gstdemux.c | 194 +++++++-----------------------------------
1 file changed, 32 insertions(+), 162 deletions(-)
Diff: https://source.winehq.org/git/wine.git/?a=commitdiff;h=90107bba944a1da286e9…
Module: tools
Branch: master
Commit: 0485fbcee84d679e93f9b8a671fed6ff4cfa1bc4
URL: https://source.winehq.org/git/tools.git/?a=commit;h=0485fbcee84d679e93f9b8a…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Thu Jan 21 11:16:11 2021 +0100
testbot/TestWTBS: Do not allow nested $TestInfo structures.
Enforce $TestInfo to be of the form $TestInfo->{category}->{property}.
Having $TestInfo->{category}->{subcategory}->{property} would make the
propagation code more complex and would require documentation regarding
how the subcategory properties get merged.
That means properties cannot be hashtables, except in the case of the
errors-matching properties since their value is a LoadLogErrors()
structure.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/tests/TestWTBS | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/testbot/tests/TestWTBS b/testbot/tests/TestWTBS
index e8d8f3f..5f62d63 100755
--- a/testbot/tests/TestWTBS
+++ b/testbot/tests/TestWTBS
@@ -330,12 +330,24 @@ sub LoadTestInfo($)
my ($Src, $TaskTypes) = @$Pair;
foreach my $Field (keys %{$TestInfo->{$Src}})
{
+ my $SrcVal = $TestInfo->{$Src}->{$Field};
+ if (ref($SrcVal) eq "HASH" and $Field !~ /\.errors$/)
+ {
+ # Simply propagating hashtable references would result in changes to
+ # win32 to impact the parent win / test parent which is not what we
+ # want. So subsets of properties are not supported.
+ # .errors properties are the exception because their values are a
+ # LoadLogErrors() structure. As a result they are read-only, and are
+ # not merged.
+ fail("internal error: $Src.$Field should not be a hash in $FileName");
+ next;
+ }
foreach my $TaskType (@$TaskTypes)
{
my $TaskInfo = $TestInfo->{$TaskType};
if (!defined $TaskInfo->{$Field})
{
- $TaskInfo->{$Field} = $TestInfo->{$Src}->{$Field};
+ $TaskInfo->{$Field} = $SrcVal;
}
}
}
@@ -404,6 +416,10 @@ the test suite, then one could also issue the following check:
p tests.TestFailures 2
+Finally, note that while the error directives are inherited by subcategories,
+they are not merged. So if if both win and win32 have error-matching
+directives, win32 will not inherit anything from the win category.
+
=cut
sub CheckLogErrors($$$)
Module: wine
Branch: master
Commit: 016eeb5109663420e25e5ba3da019135331a893e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=016eeb5109663420e25e5ba3…
Author: Nikolay Sivov <nsivov(a)codeweavers.com>
Date: Wed Jan 20 15:35:15 2021 +0300
gdi32/uniscribe: Get rid of shaping group values in Arabic shaping data table.
It's not used right now, Syriac specific groups will be accomodated
as additional joining types.
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/gdi32/uniscribe/shaping.c | 356 ++++++++++++++++++++---------------------
tools/make_unicode | 8 +-
2 files changed, 175 insertions(+), 189 deletions(-)
Diff: https://source.winehq.org/git/wine.git/?a=commitdiff;h=016eeb5109663420e25e…