Initialize the calendars variable after checking if locale is NULL before using it to avoid NULL
pointer references. Fix a Excel 2016 crash when formatting dates with the custom format 'ddd'.
It calls EnumDateFormatsExEx() with the 'yi-Hebr' locale, which is added in Win10.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55099
We update the cache in NtUserCreateDesktopEx, as it may change existing
thread desktop flags, but we need to do it as well when a new desktop is
created while still detached, then attached to a thread through
NtUserSetThreadDesktop.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55146
The Vulkan spec says:
Parameters to the command requesting a deferred operation may be accessed by the implementation at any time until the deferred operation enters the
complete state. Pointer parameters must not be modified (e.g. reallocated/freed).
This fixes a regression in Doom Eternal with ray tracing enabled with drivers
that actually support deferred operations (e.g. nvidia, amdvlk).
The xdg-shell protocol disallows buffer commits to a wl_surface with an
xdg_surface based role before we ack the first configure event. Failing
to adhere to this requirement will get our client disconnected by the
compositor with a protocol error.
Flush a window_surface to a Wayland surface by creating a wl_shm buffer
matching the window size, copying the whole window contents to that
buffer and attaching it to the corresponding Wayland surface.
In our setup with a dedicated event dispatch thread, libwayland ensures
that object proxies associated with an event handler remain valid (or
NULL) while the handler is executing. However, no such guarantees are
given for the proxy user data. It is thus possible for the user data to
become invalid (e.g., its memory freed from a different thread) right
after the event handler is entered.
This is an issue for wayland_surface associated proxies since they may
receive unsolicited events from the compositor at any time (e.g.,
xdg_surface.configure), even while we are destroying the
wayland_surface.
To avoid the problem, we introduce a lock that protects access
to xdg_surface user data and ensures that the associated wayland_surface
remains valid for the duration of the handler.
Co-authored-by: Rémi Bernon <rbernon@codeweavers.com>