On Wed May 15 15:19:50 2024 +0000, eric pouech wrote:
> to go one step further native also unmangles without whining something
> like `"?AU?$my_iter@H$0A@$$VJ@@"` into `struct my_iter<int,0,long>`
> (which doesn't make any sense in a C++ way either)
> so it looks like the $$V sequence is just a marker for the end of a
> variadic template, that is unmangled into nothing, and doesn't seem to
> have (at least the ucrtbase version I've used) other visible action
> so the attached patch should be enough
> [err](/uploads/977e89694bc0fcda26a3ba0f1ccb46b7/err)
This marker is specific to templates so it doesn't really belong to `demangle_datatype` function. The patch you have proposed e.g. incorrectly demangles `??__K_l@@YA?AUCC@@I$$VI@Z`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5646#note_70553
The most important thing here is a workaround for an OS bug: rapidly hiding and showing the dock icon can result in multiple icons for the same app, and those icons will ignore NSApp.applicationIconImage. Making sure transitions happen no less than 1 second apart from one another seems to fix it. *Edit:* v2 update: 0.5 seconds is not always long enough. A good test case is the Notepad++ installer: after you select a language, it rapidly hides and shows some windows, and without a longer delay the icon will wind up with the default system terminal-looking icon. One second is probably overkill, but this ought to be a somewhat uncommon case.
Also, hiding a dock icon will deactivate an app. That's not desirable if it still has visible windows, so attempt to force a reactivation. That's often not successful on Sonoma due to the cooperative app activation heuristics, but it's the best we can do, and it should be a rare case.
Also, there is some logic in -transformProcessToForeground: that we often want to happen regardless of whether the app is getting a dock icon (e.g. App Nap and activation). So I've renamed that function to more accurately communicate what it does, and consolidate it with -tryToActivateIgnoringOtherApps:.
--
v3: winemac.drv: Consolidate foregrounding and dock icon behavior.
winemac.drv: Remove incorrect documentation for orderBelow: and rename a parameter.
winemac.drv: Reactivate the app if needed after hiding its dock icon.
winemac.drv: Enforce a delay between dock icon hides and shows.
winemac.drv: Factor menu creation out of transformProcessToForeground:.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5604
On Wed May 15 13:11:30 2024 +0000, Piotr Caban wrote:
> I forgot to mention that native accepts multiple $$V sequences, so e.g.
> `?AU?$my_iter@H$0A@$$V$$V@@` is also parsed (but probably doesn't make
> sense and nothing is mangled this way).
to go one step further native also unmangles without whining something like `"?AU?$my_iter@H$0A@$$VJ@@"` into `struct my_iter<int,0,long>`
(which doesn't make any sense in a C++ way either)
so it looks like the $$V sequence is just a marker for the end of a variadic template, that is unmangled into nothing, and doesn't seem to have (at least the ucrtbase version I've used) other visible action
so the attached patch should be enough
[err](/uploads/977e89694bc0fcda26a3ba0f1ccb46b7/err)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5646#note_70538
--
v6: jscript: Remove PROP_IDX dispex props by handling them in object prop methods.
jscript: Move filling the PROTREF into a helper.
jscript: Simplify get_flags to only check whether it's enumerable.
jscript: Get rid of on_put in the object vtbl.
jscript: Inline prop_put.
jscript: Inline prop_get.
jscript: Inline invoke_prop_func and invoke PROTREFs using their vtbl method.
jscript: Inline delete_prop.
jscript: Use mandatory methods in the object vtbl to operate on props found
jscript: Use mandatory methods in the object vtbl to operate on props
mshtml/tests: Test redefining a writable indexed prop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5444
On Wed May 15 12:40:06 2024 +0000, Piotr Caban wrote:
> Yes I was thinking about something like you have attached first but I
> didn't like few things:
> - it requires adding new flag
> - it's a special marker that is only valid in template, it can't be
> used as datatype in other places
> - your code is also not eating final '@' correctly but it can be
> addressed easily
I forgot to mention that native accepts multiple $$V sequences, so e.g. `?AU?$my_iter@H$0A@$$V$$V@@` is also parsed (but probably doesn't make sense and nothing is mangled this way).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5646#note_70526
On Wed May 15 12:16:18 2024 +0000, eric pouech wrote:
> [err](/uploads/6c39c40a566da58e25661ae18e455f1c/err)
Yes I was thinking about something like you have attached first but I didn't like few things:
- it requires adding new flag
- it's a special marker that is only valid in template, it can't be used as datatype in other places
- your code is also not eating final '@' correctly but it can be addressed easily
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5646#note_70520
--
v2: d3dx9: Fix destination rectangles passed from D3DXLoadSurfaceFromMemory() to d3dx_load_image_from_memory().
d3dx9: Only do direct copies of full blocks for compressed formats.
d3dx9/tests: Add a new compressed surface loading test.
d3dx9/tests: Add a test for negative values in the source rectangle passed to D3DXLoadSurfaceFromMemory.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5644
On Wed May 15 08:07:21 2024 +0000, eric pouech wrote:
> that test looks very strange at that place while we already have
> handling of other types starting with "$$" in demangle_datatype.
> it calls for having a proper identification about end of list (didn't
> include the function arg one, but we could well do it)
> I think we could rather use something like the attached patch.
> [err](/uploads/8c2f1adecffbfe57c3d3bf924bf1755a/
I can't see the patch, could you please fix the link?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5646#note_70505
eric pouech (@epo) commented about dlls/msvcrt/undname.c:
> sym->current++;
> break;
> }
> + /* Handle empty list in variadic template */
> + if (!z_term && sym->current[0] == '$' && sym->current[1] == '$' && sym->current[2] == 'V')
that test looks very strange at that place while we already have handling of other types starting with "$$" in demangle_datatype.
it calls for having a proper identification about end of list (didn't include the function arg one, but we could well do it)
I think we could rather use something like the attached patch.
[err](/uploads/8c2f1adecffbfe57c3d3bf924bf1755a/
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5646#note_70497
--
v5: jscript: Remove PROP_IDX dispex props by handling them in object prop methods.
jscript: Move filling the PROTREF into a helper.
jscript: Simplify get_flags to only check whether it's enumerable.
jscript: Get rid of on_put in the object vtbl.
jscript: Inline prop_put.
jscript: Inline prop_get.
jscript: Inline invoke_prop_func and invoke PROTREFs using their vtbl method.
jscript: Inline delete_prop.
jscript: Use mandatory methods in the object vtbl to operate on props found
jscript: Use mandatory methods in the object vtbl to operate on props
mshtml/tests: Test redefining a writable indexed prop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5444
Fixing up some issues seen with display modes reported from the Apple Studio Display:
- It has some pairs of modes that differ only in whether they are "usable for desktop." Switching to one of the modes that isn't results in an error. All other things being equal, we should prefer modes that are "usable for desktop" over those that aren't.
- display_get_modes was returning multiple identical DEVMODEs. This is because we consider the kDisplayModeValidFlag and kDisplayModeSafeFlag values as making a display mode unique (and thus not comparable to other modes with the same resolution). Like above, the Studio Display has mode pairs that are identical except that one is "unsafe." We should compare modes with the same resolution, regardless of the safe and valid flags, and prefer safe and valid ones over the alternatives.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5594
--
v4: jscript: Remove PROP_IDX dispex props by handling them in object prop methods.
jscript: Move filling the PROTREF into a helper.
jscript: Simplify get_flags to only check whether it's enumerable.
jscript: Get rid of on_put in the object vtbl.
jscript: Inline prop_put.
jscript: Inline prop_get.
jscript: Inline invoke_prop_func and invoke PROTREFs using their vtbl method.
jscript: Inline delete_prop.
jscript: Use mandatory methods in the object vtbl to operate on props found
jscript: Use mandatory methods in the object vtbl to operate on props
mshtml/tests: Test redefining a writable indexed prop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5444
Oh, it is probably this one:
> xaudio2_8
> xaudio2.c:865: Test failed: CreateSubmixVoice failed: 88960001
> 0a44:xaudio2: unhandled exception c0000005 at 00007FF795004307
Thanks, I will take a look now.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5588#note_70415
DirectInputCreate(A|W|Ex) is only needed in dinput.dll, and
DirectInput8Create is only needed in dinput8.dll. Excluding the
unnecessary functions reduces the size of each DLL by about 4 KB.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5637
The `-Wstringop-overread` fix feels a bit questionable (so I'll add Eric as a
reviewer to clarify the MSC structs details)
--
v2: winedump: Fail on NULL funcs in dump_dir_exceptions().
winedump: Use offsetof() for string position calculations.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5625