x11: Don't include XDestroyImage in the table of exported functions

When linking directly to libX11 as a hard dependency, we assign the
addresses of functions like XDestroyImage to function pointers like
X11_XDestroyImage. However, by default Xutils.h doesn't declare
XDestroyImage as a function: it only provides a macro which looks into
the XImage struct and calls a function pointer directly, similar to
a virtual method.

SDL_x11framebuffer.c was already relying on being able to call the macro
without explicitly linking to libX11, so do the same here.

Fixes: d14cbd7b "Introduce X11 toolkit and make message dialogs use it"
Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
Simon McVittie
2025-09-03 17:04:50 +01:00
committed by Sam Lantinga
parent 51052245d1
commit 4441d8b0ad
2 changed files with 2 additions and 3 deletions

View File

@@ -981,10 +981,10 @@ static void X11Toolkit_DrawWindow(SDL_ToolkitWindowX11 *data) {
put_image = X11_XCreateImage(data->display, data->visual, data->vi.depth, ZPixmap, 0, put_surface->pixels, data->window_width, data->window_height, 32, put_surface->pitch);
X11_XPutImage(data->display, data->window, data->ctx, put_image, 0, 0, 0, 0, data->window_width, data->window_height);
X11_XDestroyImage(pixmap_image);
XDestroyImage(pixmap_image);
/* Needed because XDestroyImage results in a double-free otherwise */
put_image->data = NULL;
X11_XDestroyImage(put_image);
XDestroyImage(put_image);
SDL_DestroySurface(pixmap_surface);
SDL_DestroySurface(put_surface);
}