From 5196c5503ae87cc4f0decd17aa556973fc4a7308 Mon Sep 17 00:00:00 2001 From: Geoffrey McRae Date: Wed, 29 Jul 2026 11:58:04 +1000 Subject: [PATCH] [client] main: prevent accidental access to appState without accessors --- client/src/main.c | 2 ++ client/src/main.h | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/client/src/main.c b/client/src/main.c index 8c86f188..f5e80482 100644 --- a/client/src/main.c +++ b/client/src/main.c @@ -75,6 +75,8 @@ static LGEvent *e_spice = NULL; static LGThread *t_spice = NULL; static LGThread *t_render = NULL; +_Atomic(enum RunState) p_appState = APP_STATE_RUNNING; + struct AppState g_state = { .cbRemoteType = SPICE_DATA_NONE, diff --git a/client/src/main.h b/client/src/main.h index a16c7627..40b65da7 100644 --- a/client/src/main.h +++ b/client/src/main.h @@ -61,8 +61,6 @@ enum AudioResampler { struct AppState { - _Atomic(enum RunState) state; - ImGuiIO * io; ImGuiStyle * style; struct ll * overlays; @@ -353,12 +351,14 @@ extern struct AppParams g_params; static inline enum RunState app_getState(void) { - return atomic_load_explicit(&g_state.state, memory_order_acquire); + extern _Atomic(enum RunState) p_appState; + return atomic_load_explicit(&p_appState, memory_order_acquire); } static inline void app_setState(enum RunState state) { - atomic_store_explicit(&g_state.state, state, memory_order_release); + extern _Atomic(enum RunState) p_appState; + atomic_store_explicit(&p_appState, state, memory_order_release); } int main_cursorThread(void * unused);