-
c28f3e56
by Twaik Yont at 2026-05-01T22:06:58+02:00
wineandroid: Use Android logging for ioctl paths.
Replace use of Wine debug macros (TRACE/WARN/FIXME/ERR) in
wineandroid ioctl-related code with a local LOG() helper based on
__android_log_print.
This is a preparatory change for moving ioctl dispatch to
Android-managed threads, where no Wine TEB is available and the
standard Wine debug macros are not safe to use.
The new logging path uses debug channel flags initialized on the Wine
side and relies on lightweight flag checks to preserve WINEDEBUG-based
filtering, without invoking Wine debug helpers at runtime.
Also replace wine_dbgstr_rect() with local formatting helpers.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
bd66623e
by Twaik Yont at 2026-05-01T22:06:58+02:00
wineandroid: Move native window registration to surface_changed.
Move native window registration from the APC/unixlib callback path to
the direct JNI surface_changed callback, so it runs on the Android UI
thread.
Replace the APC-based register_window_callback mechanism with a direct
call to register_native_window(), and remove the associated unixlib
plumbing.
Serialize native window registration with ioctl dispatch using a shared
lock to avoid races between the GUI thread and the ioctl handling thread.
Keep WM_ANDROID_REFRESH posted from process_events() after updating the
window state.
This removes the dependency on the Wine thread/APC execution path for
this callback and relocates it to the Android GUI thread.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>
-
ad17aed5
by Twaik Yont at 2026-05-01T22:06:58+02:00
wineandroid: Pass JNIEnv explicitly through ioctl handlers.
Pass JNIEnv *env explicitly through the ioctl dispatch path and all
ioctl handlers, and stop relying on the global jni_env variable in
these code paths.
Update all JNI call sites in the ioctl dispatch and related functions
to use the passed env parameter, including method lookup and
CallVoidMethod invocations, aligning these JNI interaction paths with
the canonical usage pattern where JNIEnv is strictly per-thread and
not stored globally.
Other uses of the global jni_env remain and will be addressed in
follow-up changes, so this is a preparatory refactoring,
not the final thread-safety fix.
This change is mechanically large but does not introduce functional
changes, and is kept separate to simplify review of subsequent changes.
Signed-off-by: Twaik Yont <9674930+twaik@users.noreply.github.com>