As these handles to a file don't have an unix-name attached, the
FileAllInformation query fails.
So only implement GetFileInformationByHandle() on top of queries which
don't fail.
I tested if the three ntdll calls instead of one did impact performance.
On cached handles they don't: a simple x100000 loop even shows a
~10% improvement, likely because we don't grab the filename from wineserver.
Note: that NtQueryInformationFile(FileAllInformation) (as other queries
returning file's name) will …
[View More]still fail on these unix-redirected handles.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51813
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1665
[View Less]
--
v3: winegstreamer: Implement GetOutputSizeInfo for WMV decoder.
mf/tests: Test GetOutputSizeInfo for WMV decoder.
winegstreamer: Implement SetOutputType for WMV decoder.
winegstreamer: Implement GetOutputType for WMV decoder.
mfplat: Support YVYU, NV11, MEDIASUBTYPE_RGB* media types.
mfplat: Fix stride calculation for RGB24.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1925
LOCALE_SGROUPING's string and the `Grouping` field in NUMBERFMTW are confusingly different. The former, which is what is fixed here, treats a '0' as a repeat of the previous grouping. But a 0 at the end of the `Grouping` field prevents it from repeating (it repeats by default otherwise) so it's the opposite. Note that without a '0' in the LOCALE_SGROUPING string, it shouldn't even repeat in the first place.
This fixes the typical "3;0" default grouping, for example.
See: https://learn.…
[View More]microsoft.com/en-us/windows/win32/intl/locale-sgrouping
--
v6: kernelbase: Fix grouping repeat for number formatting.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1937
[View Less]
Code assumes that tableIndex is never 0, while GCC cannot
infer it. So include tableIndex=0 case into already handled
error cases.
GCC/Mingw complains with:
/home/eric/work/wine/dlls/inetmib1/main.c: In function 'mib2IfEntryQuery':
/home/eric/work/wine/dlls/inetmib1/main.c:646:25: warning: array subscript 4294967295 is above array bounds of 'MIB_IFROW[1]' {aka 'struct _MIB_IFROW[1]'} [-Warray-bounds]
646 | &ifTable->table[tableIndex - 1], item,
| …
[View More] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/eric/work/wine/include/ipmib.h:21,
from /home/eric/work/wine/include/iprtrmib.h:24,
from /home/eric/work/wine/include/iphlpapi.h:25,
from /home/eric/work/wine/dlls/inetmib1/main.c:30:
/home/eric/work/wine/include/ifmib.h:66:15: note: while referencing 'table'
66 | MIB_IFROW table[1];
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1764
[View Less]
GCC (MingW) 12.2 rightfully warns with:
/home/eric/work/wine/dlls/kernelbase/loader.c: In function 'GetModuleHandleA':
/home/eric/work/wine/dlls/kernelbase/loader.c:332:12: warning: 'ret' may be used uninitialized [-Wmaybe-uninitialized]
332 | return ret;
| ^~~
/home/eric/work/wine/dlls/kernelbase/loader.c:329:13: note: 'ret' declared here
329 | HMODULE ret;
| ^~~
So set module to NULL on all error codepaths in GetModuleHandleExA().
Signed-off-by: …
[View More]Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/978
[View Less]
Mark args local variable with volatile to tell GCC not to check
for out of bounds access.
Alternative fix: use an intermediate variable to store &fun as
an integer.
MingW/GCC 12 complains with:
In file included from /home/eric/work/wine/dlls/krnl386.exe16/thunk.c:36:
/home/eric/work/wine/dlls/krnl386.exe16/thunk.c: In function 'SSCall':
/home/eric/work/wine/include/wine/debug.h:91:4: warning: array subscript 1 is outside array bounds of 'INT_PTR (__attribute__((stdcall)) *[1])(void)' {…
[View More]aka 'int (__attribute__((stdcall)) *[1])(void)'} [-Warray-bounds]
91 | wine_dbg_log( __dbcl, __dbch, __func__, __VA_ARGS__); } } while(0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/eric/work/wine/include/wine/debug.h:88:8: note: in expansion of macro '__WINE_DBG_LOG'
88 | __WINE_DBG_LOG
| ^~~~~~~~~~~~~~
/home/eric/work/wine/include/wine/debug.h:463:36: note: in expansion of macro '__WINE_DPRINTF'
463 | #define WINE_TRACE __WINE_DPRINTF(_TRACE,__wine_dbch___default)
| ^~~~~~~~~~~~~~
/home/eric/work/wine/include/wine/debug.h:506:36: note: in expansion of macro 'WINE_TRACE'
506 | #define TRACE WINE_TRACE
| ^~~~~~~~~~
/home/eric/work/wine/dlls/krnl386.exe16/thunk.c:996:32: note: in expansion of macro 'TRACE'
996 | for (i = 0; i < nr/4; i++) TRACE("0x%08lx,",args[i]);
| ^~~~~
/home/eric/work/wine/dlls/krnl386.exe16/thunk.c:989:17: note: at offset 4 into object 'fun' of size 4
989 | FARPROC fun, /* [in] function to call */
| ~~~~~~~~^~~
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1765
[View Less]
Allowing the job to fail to avoid failing the pipeline. Some new tests
are failing with it, and some are succeeding todo_wine.
--
v3: gitlab: Run user32 32-bit tests with nulldrv driver.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1259
The function is called a lot, I believe something like this would improve its performance in general.
--
v2: ntdll: Lookup extension from the end in hash_short_file_name.
ntdll: Use invalid char lookup table in lookup_unix_name.
ntdll: Use invalid char lookup table in nt_to_unix_file_name_no_root.
ntdll: Use invalid char lookup table in is_legal_8dot3_name.
ntdll: Use invalid char lookup table in is_invalid_dos_char.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1756