-
d98061e1
by Twaik Yont at 2026-03-04T13:02:32+01:00
wineandroid: Fix desktop init ordering after CreateDesktopW changes.
After 4b5311c7e02aa7ab2409f8fdcd22233f116dc4bc, ANDROID_CreateDesktop
is invoked from CreateDesktopW before the DESKTOP window is
created. The previous code assumed the opposite order and tried to
construct the desktop WineWindow from createDesktopWindow(), which no
longer works.
Split desktop initialization into two steps: create_desktop_view() now
only sets up the Java TopView, and the actual desktop WineWindow is
created later via create_window(), with an explicit is_desktop flag
propagated through the IOCTL/JNI path.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
893b6173
by Twaik Yont at 2026-03-04T13:02:53+01:00
wineandroid: Sanitize dequeueBuffer result and reject missing buffers.
`dequeueBuffer()` may return success without initializing the
`ANativeWindowBuffer` pointer. In that case the caller would observe
either a `NULL` pointer or uninitialized stack garbage and proceed to
dereference it, leading to crashes or undefined behavior in the
rendering path.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
740961fe
by Twaik Yont at 2026-03-04T13:03:00+01:00
ntdll: Call virtual_init from JNI_OnLoad to avoid early virtual_alloc_first_teb failure.
Wine frequently failed early during startup with:
```
err:virtual:virtual_alloc_first_teb wine: failed to map the shared user data: c0000018
```
This appears to happen because the JVM can reserve address space that
Wine later needs at a fixed address for the shared user data
mapping. Initializing the virtual memory subsystem earlier reduces the
chance of the JVM taking that range.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>