Follow Up of Merge request !693 by Jacek Caban. That pull request changed
properly the static control of user32, but didn't address the comctl32
static control.
Fix an issue of TES4:Oblivion Construction Set, reported by me in the
Wine Bug: https://bugs.winehq.org/show_bug.cgi?id=53581#c5
after the merge request fixed the reported CS crash.
Signed-off-by: Lorenzo Ferrillo [lorenzofersteam@live.it](mailto:lorenzofersteam@live.it)
--
v4: comctl32: Support passing bitmap and icon resource ID as a string when creating static control.
https://gitlab.winehq.org/wine/wine/-/merge_requests/775
Follow Up of Merge request !693 by Jacek Caban. That pull request changed
properly the static control of user32, but didn't address the comctl32
static control.
Fix an issue of TES4:Oblivion Construction Set, reported by me in the
Wine Bug: https://bugs.winehq.org/show_bug.cgi?id=53581#c5
after the merge request fixed the reported CS crash.
Signed-off-by: Lorenzo Ferrillo [lorenzofersteam@live.it](mailto:lorenzofersteam@live.it)
--
v3: comctl32: Support passing bitmap and icon resource ID as a string when creating static control.
https://gitlab.winehq.org/wine/wine/-/merge_requests/775
The current version of the code incorrectly assumes that the lpszClass
member of CREATESTRUCT passed with WM_CREATE will point to the same
memory used for the CreateWindowEx class name parameter, and uses a
pointer comparison to check for class name equality.
As a side effect of commit e41c255be6ba66d1eec7affe674b8cc7699226b8
"win32u: Use send_message_timeout for WM_CREATE and WM_NCCREATE" the
CREATESTRUCT lpszClass member started pointing to different memory,
breaking the current implementation of MCIWND_Create().
This commit fixes the problem by performing a proper, case-insensitive
string comparison to determine class name equality.
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=53578
--
v4: msvfw32: Use window name to determine if window is created using MCIWndCreate.
msvfw32: Test window creation with filename.
https://gitlab.winehq.org/wine/wine/-/merge_requests/726
The current version of the code incorrectly assumes that the lpszClass
member of CREATESTRUCT passed with WM_CREATE will point to the same
memory used for the CreateWindowEx class name parameter, and uses a
pointer comparison to check for class name equality.
As a side effect of commit e41c255be6ba66d1eec7affe674b8cc7699226b8
"win32u: Use send_message_timeout for WM_CREATE and WM_NCCREATE" the
CREATESTRUCT lpszClass member started pointing to different memory,
breaking the current implementation of MCIWND_Create().
This commit fixes the problem by performing a proper, case-insensitive
string comparison to determine class name equality.
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=53578
--
v3: msvfw32: Use string comparison to determine class name equality.
https://gitlab.winehq.org/wine/wine/-/merge_requests/726
Follow Up of Merge request !693 by Jacek Caban. That pull request changed
properly the static control of user32, but didn't address the comctl32
static control.
Fix an issue of TES4:Oblivion Construction Set, reported by me in the
Wine Bug: https://bugs.winehq.org/show_bug.cgi?id=53581#c5
after the merge request fixed the reported CS crash.
Signed-off-by: Lorenzo Ferrillo [lorenzofersteam@live.it](mailto:lorenzofersteam@live.it)
--
v2: comctl32: Support passing bitmap and icon resource ID as a string when creating static control.
https://gitlab.winehq.org/wine/wine/-/merge_requests/775
Based on [a patch](https://www.winehq.org/mailman3/hyperkitty/list/wine-devel@winehq.or… by Jinoh Kang (@iamahuman) from February 2022.
I removed the need for the event object and implemented fast paths for Linux.
On Linux 4.14+ `membarrier(MEMBARRIER_CMD_GLOBAL_EXPEDITED, ...)` is used.
On x86 Linux <= 4.13 `madvise(..., MADV_DONTNEED)` is used, which sends IPIs to all cores causing them to do a memory barrier.
On non-x86 Linux 4.3-4.13 `membarrier(MEMBARRIER_CMD_SHARED, ...)` is used.
On non-x86 Linux <= 4.2 and on other platforms the fallback path using APCs is used.
--
v2: ntdll: Add thread_get_register_pointer_values-based fast path for NtFlushProcessWriteBuffers.
ntdll: Add sys_membarrier-based fast path to NtFlushProcessWriteBuffers.
ntdll: Add MADV_DONTNEED-based fast path for NtFlushProcessWriteBuffers.
ntdll: Make server_select a memory barrier.
ntdll: Implement NtFlushProcessWriteBuffers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/741
Follow Up of Merge request !693 by Jacek Caban. That pull request changed
properly the static control of user32, but didn't address the comctl32
static control.
Fix an issue of TES4:Oblivion Construction Set, reported by me in the
Wine Bug: https://bugs.winehq.org/show_bug.cgi?id=53581#c5
after the merge request fixed the reported CS crash.
Signed-off-by: Lorenzo Ferrillo [lorenzofersteam@live.it](mailto:lorenzofersteam@live.it)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/775
On Sat Sep 3 17:53:35 2022 +0000, **** wrote:
> Zebediah Figura replied on the mailing list:
> ```
> On 9/3/22 12:48, Etaash Mathamsetty (@etaash.mathamsetty) wrote:
> > On Sat Sep 3 17:43:11 2022 +0000, **** wrote:
> >> Zebediah Figura replied on the mailing list:
> >> \`\`\`
> >> On 9/3/22 12:22, Etaash Mathamsetty (@etaash.mathamsetty) wrote:
> >>> This instruction only needs to compare 1 byte, since it's imm8 is just
> >> an 8 bit number (unless I am wrong)
> >> The 0x83 family is an arithmetic operation between a sign-extended
> >> immediate byte and a 2/4/8-byte register or memory location. The
> >> equivalent 1-byte comparison is 0x80 or 0x82 (they are duplicates).
> >> \`\`\`
> > the comparison is between a signed byte and a 2/4/8 byte
> register/memory location, how am I supposed to compare more than 1 byte?
> >
> As stated, the immediate byte should be sign-extended to the appropriate
> length.
> ```
Do you have any info on how to set these other flags?
`OF, PF, AF, SF`
I can't find much info about it.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/721#note_7623