From: Emil Velikov <emil.veli...@collabora.com> dri3_screen_info is the user provide dispatch. Something that we do not and should not change.
When using the _ptr typecast + const the compiler barfs at us (rightfully so), so use the _rec one. Fixes: 56313829886 ("dri3: Add DRI3 extension") Cc: Keith Packard <kei...@keithp.com> Cc: Adam Jackson <a...@redhat.com> Signed-off-by: Emil Velikov <emil.veli...@collabora.com> --- Why do we have the explicit _rec and _ptr typecasts to begin with? It reminds be of Pascal with it's infamous record ... from some 20 years ago. --- dri3/dri3.c | 2 +- dri3/dri3.h | 2 +- dri3/dri3_priv.h | 2 +- dri3/dri3_screen.c | 12 ++++++------ glamor/glamor_egl.c | 2 +- hw/xwayland/xwayland-glamor.c | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dri3/dri3.c b/dri3/dri3.c index 8ac0f3ae2..ba32facd7 100644 --- a/dri3/dri3.c +++ b/dri3/dri3.c @@ -45,7 +45,7 @@ dri3_close_screen(ScreenPtr screen) } Bool -dri3_screen_init(ScreenPtr screen, dri3_screen_info_ptr info) +dri3_screen_init(ScreenPtr screen, const dri3_screen_info_rec *info) { dri3_screen_generation = serverGeneration; diff --git a/dri3/dri3.h b/dri3/dri3.h index 89ad13ad9..bd17522b0 100644 --- a/dri3/dri3.h +++ b/dri3/dri3.h @@ -104,7 +104,7 @@ typedef struct dri3_screen_info { } dri3_screen_info_rec, *dri3_screen_info_ptr; extern _X_EXPORT Bool -dri3_screen_init(ScreenPtr screen, dri3_screen_info_ptr info); +dri3_screen_init(ScreenPtr screen, const dri3_screen_info_rec *info); extern _X_EXPORT int dri3_send_open_reply(ClientPtr client, int fd); diff --git a/dri3/dri3_priv.h b/dri3/dri3_priv.h index 8447680ba..cf6632ddf 100644 --- a/dri3/dri3_priv.h +++ b/dri3/dri3_priv.h @@ -49,7 +49,7 @@ typedef struct dri3_screen_priv { CARD32 num_formats; dri3_dmabuf_format_ptr formats; - dri3_screen_info_ptr info; + const dri3_screen_info_rec *info; } dri3_screen_priv_rec, *dri3_screen_priv_ptr; #define wrap(priv,real,mem,func) {\ diff --git a/dri3/dri3_screen.c b/dri3/dri3_screen.c index df40f8281..0b045c413 100644 --- a/dri3/dri3_screen.c +++ b/dri3/dri3_screen.c @@ -31,7 +31,7 @@ #include <randrstr.h> #include <drm_fourcc.h> -static inline Bool has_open(dri3_screen_info_ptr info) { +static inline Bool has_open(const dri3_screen_info_rec *info) { if (info == NULL) return FALSE; @@ -43,7 +43,7 @@ int dri3_open(ClientPtr client, ScreenPtr screen, RRProviderPtr provider, int *fd) { dri3_screen_priv_ptr ds = dri3_screen_priv(screen); - dri3_screen_info_ptr info = ds->info; + const dri3_screen_info_rec *info = ds->info; int rc; if (!has_open(info)) @@ -68,7 +68,7 @@ dri3_pixmap_from_fds(PixmapPtr *ppixmap, ScreenPtr screen, CARD8 depth, CARD8 bpp, CARD64 modifier) { dri3_screen_priv_ptr ds = dri3_screen_priv(screen); - dri3_screen_info_ptr info = ds->info; + const dri3_screen_info_rec *info = ds->info; PixmapPtr pixmap; if (!info) @@ -99,7 +99,7 @@ dri3_fds_from_pixmap(PixmapPtr pixmap, int *fds, { ScreenPtr screen = pixmap->drawable.pScreen; dri3_screen_priv_ptr ds = dri3_screen_priv(screen); - dri3_screen_info_ptr info = ds->info; + const dri3_screen_info_rec *info = ds->info; if (!info) return 0; @@ -128,7 +128,7 @@ static int cache_formats_and_modifiers(ScreenPtr screen) { dri3_screen_priv_ptr ds = dri3_screen_priv(screen); - dri3_screen_info_ptr info = ds->info; + const dri3_screen_info_rec *info = ds->info; CARD32 *formats = NULL; CARD64 *modifiers = NULL; int i; @@ -188,7 +188,7 @@ dri3_get_supported_modifiers(ScreenPtr screen, DrawablePtr drawable, CARD64 **screen_modifiers) { dri3_screen_priv_ptr ds = dri3_screen_priv(screen); - dri3_screen_info_ptr info = ds->info; + const dri3_screen_info_rec *info = ds->info; int i, j; int ret; CARD32 num_drawable_mods; diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c index 4a550932a..5992b9279 100644 --- a/glamor/glamor_egl.c +++ b/glamor/glamor_egl.c @@ -755,7 +755,7 @@ glamor_dri3_open_client(ClientPtr client, return Success; } -static dri3_screen_info_rec glamor_dri3_info = { +static const dri3_screen_info_rec glamor_dri3_info = { .version = 2, .open_client = glamor_dri3_open_client, .pixmap_from_fds = glamor_pixmap_from_fds, diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c index 7e9815626..7f64483bf 100644 --- a/hw/xwayland/xwayland-glamor.c +++ b/hw/xwayland/xwayland-glamor.c @@ -815,7 +815,7 @@ glamor_get_modifiers(ScreenPtr screen, CARD32 format, } -static dri3_screen_info_rec xwl_dri3_info = { +static const dri3_screen_info_rec xwl_dri3_info = { .version = 2, .open = NULL, .pixmap_from_fds = glamor_pixmap_from_fds, -- 2.16.0 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel