From 1ecd80dc591d0bf6c9e47e23c479c72eb03a9204 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 4 Oct 2024 22:08:46 +0200 Subject: [PATCH] (!1714) dri3: use CloseScreen hook Wrapping ScreenRec's function pointers is problematic for many reasons, so use the new screen close notify hook instead. Signed-off-by: Enrico Weigelt, metux IT consult --- dri3/dri3.c | 10 +++------- dri3/dri3_priv.h | 1 - 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/dri3/dri3.c b/dri3/dri3.c index 2675b44ff..5ec531fa7 100644 --- a/dri3/dri3.c +++ b/dri3/dri3.c @@ -29,15 +29,11 @@ DevPrivateKeyRec dri3_screen_private_key; static int dri3_screen_generation; -static Bool -dri3_close_screen(ScreenPtr screen) +static void dri3_screen_close(ScreenPtr screen, void *arg) { dri3_screen_priv_ptr screen_priv = dri3_screen_priv(screen); - - unwrap(screen_priv, screen, CloseScreen); - + dixScreenUnhookClose(screen, dri3_screen_close, NULL); free(screen_priv); - return (*screen->CloseScreen) (screen); } Bool @@ -53,7 +49,7 @@ dri3_screen_init(ScreenPtr screen, const dri3_screen_info_rec *info) if (!screen_priv) return FALSE; - wrap(screen_priv, screen, CloseScreen, dri3_close_screen); + dixScreenHookClose(screen, dri3_screen_close, NULL); screen_priv->info = info; diff --git a/dri3/dri3_priv.h b/dri3/dri3_priv.h index 3486a309d..b59fc640e 100644 --- a/dri3/dri3_priv.h +++ b/dri3/dri3_priv.h @@ -42,7 +42,6 @@ typedef struct dri3_dmabuf_format { } dri3_dmabuf_format_rec, *dri3_dmabuf_format_ptr; typedef struct dri3_screen_priv { - CloseScreenProcPtr CloseScreen; ConfigNotifyProcPtr ConfigNotify; Bool formats_cached;