diff options
Diffstat (limited to 'source/blender/windowmanager/xr/intern/wm_xr_session.c')
-rw-r--r-- | source/blender/windowmanager/xr/intern/wm_xr_session.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/windowmanager/xr/intern/wm_xr_session.c b/source/blender/windowmanager/xr/intern/wm_xr_session.c index ba30b0dd864..dc15b579e9d 100644 --- a/source/blender/windowmanager/xr/intern/wm_xr_session.c +++ b/source/blender/windowmanager/xr/intern/wm_xr_session.c @@ -68,7 +68,7 @@ static void wm_xr_session_controller_data_free(wmXrSessionState *state) BLI_freelistN(&state->controllers); } -static void wm_xr_session_data_free(wmXrSessionState *state) +void wm_xr_session_data_free(wmXrSessionState *state) { wm_xr_session_controller_data_free(state); } @@ -76,6 +76,9 @@ static void wm_xr_session_data_free(wmXrSessionState *state) static void wm_xr_session_exit_cb(void *customdata) { wmXrData *xr_data = customdata; + if (!xr_data->runtime) { + return; + } xr_data->runtime->session_state.is_started = false; @@ -84,7 +87,6 @@ static void wm_xr_session_exit_cb(void *customdata) } /* Free the entire runtime data (including session state and context), to play safe. */ - wm_xr_session_data_free(&xr_data->runtime->session_state); wm_xr_runtime_data_free(&xr_data->runtime); } |