comparison src/video/x11/SDL_x11image.c @ 810:26a0e2d69d39

*** empty log message ***
author Sam Lantinga <slouken@libsdl.org>
date Wed, 11 Feb 2004 16:40:17 +0000
parents b8d311d90021
children 045f186426e1
comparison
equal deleted inserted replaced
809:dba98fb391e7 810:26a0e2d69d39
42 static int shm_error; 42 static int shm_error;
43 static int (*X_handler)(Display *, XErrorEvent *) = NULL; 43 static int (*X_handler)(Display *, XErrorEvent *) = NULL;
44 static int shm_errhandler(Display *d, XErrorEvent *e) 44 static int shm_errhandler(Display *d, XErrorEvent *e)
45 { 45 {
46 if ( e->error_code == BadAccess ) { 46 if ( e->error_code == BadAccess ) {
47 shm_error = 1; 47 shm_error = True;
48 return(0); 48 return(0);
49 } else 49 } else
50 return(X_handler(d,e)); 50 return(X_handler(d,e));
51 } 51 }
52 52
63 shm_error = False; 63 shm_error = False;
64 X_handler = XSetErrorHandler(shm_errhandler); 64 X_handler = XSetErrorHandler(shm_errhandler);
65 XShmAttach(SDL_Display, &shminfo); 65 XShmAttach(SDL_Display, &shminfo);
66 XSync(SDL_Display, True); 66 XSync(SDL_Display, True);
67 XSetErrorHandler(X_handler); 67 XSetErrorHandler(X_handler);
68 if (shm_error) 68 if ( shm_error )
69 shmdt(shminfo.shmaddr); 69 shmdt(shminfo.shmaddr);
70 } else { 70 } else {
71 shm_error = True; 71 shm_error = True;
72 } 72 }
73 shmctl(shminfo.shmid, IPC_RMID, NULL); 73 shmctl(shminfo.shmid, IPC_RMID, NULL);