I had a bugreport here: https://bugs.winehq.org/show_bug.cgi?id=56161
This pull req fixes the bug that programs that do VirtualAlloc(placeholder)/VirtualFree(keep placeholder)/MapViewOfFile3(replace placeholder), do not run. Like the dotnet pe loader in .net 7 for example.
It was not clear to me at first, because i didnt notice it on msdn, but the way that Dmitry Timoshkov "hacked" it in https://bugs.winehq.org/show_bug.cgi?id=56122 is actually (nearly) how it is supposed to happen according to msdn.
From here: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-… ![image](/uploads/58614927d38c15d4c23517aa5dc09d77/image.png)
So thanks to Dmitry Timoshkov. If you are interested you could also look into the thing i mentioned in the bug report, that MapViewOfFile3 doesn't round down to 64k, but, i don't think this is a serious problem yet.
Edit: I found out that under windows, the alignment constraint is not fully lifted but, it is only required to be pagesize aligned if MEM_REPLACE_PLACEHOLDER is present in the flags.
To clarify why i want this in wine. The PE Loader of .net (see here https://github.com/dotnet/runtime/blob/f21dc6c3dceb6ea76bef73e2a026c770aaed…) does align with page size. Not with 64k. This breaks a .net 7 app during load up, that will execute otherwise just execute fine.
--
v17: kernelbase: Added a test for MapViewOfFile3 with MEM_REPLACE_PLACEHOLDER
https://gitlab.winehq.org/wine/wine/-/merge_requests/4822
I had a bugreport here: https://bugs.winehq.org/show_bug.cgi?id=56161
This pull req fixes the bug that programs that do VirtualAlloc(placeholder)/VirtualFree(keep placeholder)/MapViewOfFile3(replace placeholder), do not run. Like the dotnet pe loader in .net 7 for example.
It was not clear to me at first, because i didnt notice it on msdn, but the way that Dmitry Timoshkov "hacked" it in https://bugs.winehq.org/show_bug.cgi?id=56122 is actually (nearly) how it is supposed to happen according to msdn.
From here: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-… ![image](/uploads/58614927d38c15d4c23517aa5dc09d77/image.png)
So thanks to Dmitry Timoshkov. If you are interested you could also look into the thing i mentioned in the bug report, that MapViewOfFile3 doesn't round down to 64k, but, i don't think this is a serious problem yet.
Edit: I found out that under windows, the alignment constraint is not fully lifted but, it is only required to be pagesize aligned if MEM_REPLACE_PLACEHOLDER is present in the flags.
To clarify why i want this in wine. The PE Loader of .net (see here https://github.com/dotnet/runtime/blob/f21dc6c3dceb6ea76bef73e2a026c770aaed…) does align with page size. Not with 64k. This breaks a .net 7 app during load up, that will execute otherwise just execute fine.
--
v16: kernelbase: Added a test for MapViewOfFile3 with MEM_REPLACE_PLACEHOLDER
ntdll: Fix: Use pagesize alignment if MEM_REPLACE_PLACEHOLDER is set in flags of NtMapViewOfSection(Ex)
https://gitlab.winehq.org/wine/wine/-/merge_requests/4822
Implements asin, acos, atan, and atan2.
Also includes some tests in a new test file.
One possible problem here is that I'm not sure how to test what Microsoft's atan and atan2 outputs are in boundary cases like atan2(1, 0). I've made the test suites adhere with the calculator program I've been using (Qalculate, which I assume is using libc's atan2).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55154
--
v8: vkd3d-shader/hlsl: Implement atan and atan2.
vkd3d-shader/hlsl: Implement acos and asin trig intrinsics.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/364
--
v2: winegstreamer: Implement H264 decoder GetInputCurrentType.
mf/topology_loader: Try to connect transform nodes with their current types first.
mf/topology_loader: Initialize transform output type before adding converter.
mf/topology_loader: Ignore SetOutputType errors when doing indirect connect.
mf/topology_loader: Use a local variable for the indirect connection method.
mf/tests: Check inserted topology loader transforms explicitly.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4881
Signed-off-by: David Kahurani k.kahurani(a)gmail.com
--
v6: dlls/gdiplus: Use path_list to path helper in GdipWidenPath.
dlls/gdiplus: Use path_list to path helper in GdipFlattenPath.
dlls/gdiplus: Use GdipCreatePath2 when serializing paths
dlls/gdiplus: Use GdipCreatePath2 in GdipClonePath
https://gitlab.winehq.org/wine/wine/-/merge_requests/4803
It's often just casted by callers anyway. Fixes clang warning:
```
dlls/windowscodecs/info.c:1426:81: warning: passing 'WICPixelFormatNumericRepresentation *' (aka 'enum WICPixelFormatNumericRepresentation *') to parameter of type 'UINT *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
return ComponentInfo_GetUINTValue(This->classkey, L"NumericRepresentation", pNumericRepresentation);
^~~~~~~~~~~~~~~~~~~~~~
../dlls/windowscodecs/info.c:104:11: note: passing argument to parameter 'result' here
UINT *result)
^
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4963