Skip to content

Commit

Permalink
have_mitshm: use XShmQueryExtension to check for MIT-SHM extension
Browse files Browse the repository at this point in the history
Do not try to guess MIT_SHM extension availability from the string
returned by XDisplayName, use the appropriate API instead.

This fixes SDL2 inside hasher.
  • Loading branch information
ldv-alt committed Jan 4, 2020
1 parent cdbeae5 commit ed514cd
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions src/video/x11/SDL_x11framebuffer.c
Expand Up @@ -40,14 +40,10 @@ static int shm_errhandler(Display *d, XErrorEvent *e)
return(X_handler(d,e));
}

static SDL_bool have_mitshm(void)
static SDL_bool have_mitshm(Display *dpy)
{
/* Only use shared memory on local X servers */
if ( (SDL_strncmp(X11_XDisplayName(NULL), ":", 1) == 0) ||
(SDL_strncmp(X11_XDisplayName(NULL), "unix:", 5) == 0) ) {
return SDL_X11_HAVE_SHM;
}
return SDL_FALSE;
return X11_XShmQueryExtension(dpy) ? SDL_X11_HAVE_SHM : SDL_FALSE;
}

#endif /* !NO_SHARED_MEMORY */
Expand Down Expand Up @@ -86,7 +82,7 @@ X11_CreateWindowFramebuffer(_THIS, SDL_Window * window, Uint32 * format,

/* Create the actual image */
#ifndef NO_SHARED_MEMORY
if (have_mitshm()) {
if (have_mitshm(display)) {
XShmSegmentInfo *shminfo = &data->shminfo;

shminfo->shmid = shmget(IPC_PRIVATE, window->h*(*pitch), IPC_CREAT | 0777);
Expand Down

0 comments on commit ed514cd

Please sign in to comment.