Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45123
In `gdiplus/graphicspath.c` calculating the Pythagorean addition is needed, which is defined as:
a ⊕ b = sqrt(a^2+b^2)
This is hypotenuse, or the length of the longest side of a right-angled triangle, that we know the other 2 sides, a and b.
https://en.wikipedia.org/wiki/Pythagorean_addition
By using `sqrt(a * a + b * b)`, for large (or small) `a` or `b`, there is a possibility of overflow (underflow),
although the result itself is not that big (small) to cause overflow (underflow).
To overcome this problem, there are implementations of hypotenuse that do not use power of 2,
and use other methods to calculate the result.
To calculate `a ⊕ b`, you can easily use `hypotf(a,b)`.
https://en.cppreference.com/w/cpp/numeric/math/hypot
--
v5: gdiplus/font: Avoid computation overflow and underflow by using hypotf
gdiplus/graphicspath: Avoid computation overflow and underflow by using hypotf.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4475
This is my first time contributing wine and there are a lot of things I'm not sure about, so any comments are welcome. :)
--
v12: kernel32: add sync barrier test
kernel32: impl sync barrier
https://gitlab.winehq.org/wine/wine/-/merge_requests/4372
I don't think there's any reason to use the conversion context to allocate this memory, it's briefly used to build the host extension list and released right away.
--
v2: winevulkan: Allocate memory for VkInstanceCreateInfo with malloc.
winevulkan: Allocate memory for VkDeviceCreateInfo with malloc.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4488