Previously it was assumed that synchronous I/O fills the 64-bit IOSB, and
asynchronous I/O fills the 32-bit IOSB.
As the ntdll:wow64 tests show, this is incorrect. I/O on an overlapped handle,
whether it is synchronous or not, fills the 32-bit IOSB, and I/O on a
non-overlapped handle always fills the 64-bit IOSB.
The first half is important, since completion can be signaled before we even
return from the initial I/O call [NtReadFile() etc.] Filling the IOSB after
signaling completion is the cause of bug 56389. This patch series fixes that.
The second discrepancy does not cause any bugs, as far as I can see, and is
a bit harder to fix anyway. It is therefore not addressed by this patch series.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56389
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5926
This is part X of cmd engine rewrite.
This serie:
- tackles some other variable expansion issues,
- attaches redirections to CMD_NODE (where it belongs)
(eg. "> foo (IF 1==1 echo a)" is a valid command),
- preparing for next serie.
Next serie will activate he updated lexer and parser.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5932
IIUC atexit isn't exported by ucrtbase, but still exists (maybe as a builtin) and is resolved to a module-local symbol which can be used to register functions executed on module process detach. It is called implicitly by C++ compilers to register static destructors.
--
v3: include: Define __cpuid(ex) as intrinsics when _MSC_VER is defined.
include: Don't import atexit when building with ucrtbase.
include: Guard rpcndr.h DECLSPEC_UUID definition.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5915
GStreamer uses _SC_NPROCESSORS_CONF to determine 'max-threads'. On the
Steam Deck, this is configured to be 16 (which is double its number
of logical cores).
_SC_NPROCESSORS_CONF also disregards a process's CPU affinity, thus it
can create more threads than is useful, which ultimately wastes memory
resources.
Using affinity to set 'max-threads' addresses both these problems.
--
v2: winegstreamer: Set MAX_THREADS to 4 for i386.
winegstreamer: Use thread_count to determine 'max-threads' value.
winegstreamer: Provide thread_count to init_gstreamer.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5923
Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/listview.c:
> {
> if ((infoPtr->uView == LV_VIEW_LIST) || (infoPtr->uView == LV_VIEW_DETAILS))
> {
> - while (nItem < infoPtr->nItemCount)
> + while (nItem < infoPtr->nItemCount - 1)
This looks correct at first glance. Do you have an application affected by this? It seems to me changing this only reduces some time and -1 will be returned if it's the last item.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5909#note_74440
On Wed Jun 26 07:15:20 2024 +0000, Ilia Docin wrote:
> To reproduce it, I moved gripper left and right to hide some buttons,
> then brought it back. On the first image chevron didn't disappear as
> expected. On the second one chevron went away as I applied fix.
Do you have a link to the software you used to demonstrate?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5706#note_74439
Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/rebar.c:
> lpBand->rcChild.top, lpBand->rcChild.right + CHEVRON_WIDTH,
Please also change the commit message title to "comctl32/rebar: Hide chevron if rebar's band is resized back to full size with gripper.". Note the dot at the end of the title.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5706#note_74438