aboutsummaryrefslogtreecommitdiff
path: root/libX11/src/XlibInt.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-03-17 13:49:22 +0000
committermarha <marha@users.sourceforge.net>2011-03-17 13:49:22 +0000
commitd7f1bd4112420f1d4b41c5409074eca6b34bf507 (patch)
treee3673d73657946b3122f5ff05bf19dff5ddeaff6 /libX11/src/XlibInt.c
parent5e633abcca598289d0423d89bb400b41e6417259 (diff)
downloadvcxsrv-d7f1bd4112420f1d4b41c5409074eca6b34bf507.tar.gz
vcxsrv-d7f1bd4112420f1d4b41c5409074eca6b34bf507.tar.bz2
vcxsrv-d7f1bd4112420f1d4b41c5409074eca6b34bf507.zip
xserver libX11 mesa git updaet 17 Mar 2011
Diffstat (limited to 'libX11/src/XlibInt.c')
-rw-r--r--libX11/src/XlibInt.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/libX11/src/XlibInt.c b/libX11/src/XlibInt.c
index a78da9bf1..3db151e29 100644
--- a/libX11/src/XlibInt.c
+++ b/libX11/src/XlibInt.c
@@ -1574,7 +1574,19 @@ int _XError (
!(*dpy->error_vec[rep->errorCode])(dpy, &event.xerror, rep))
return 0;
if (_XErrorFunction != NULL) {
- return (*_XErrorFunction)(dpy, (XErrorEvent *)&event); /* upcall */
+ int rtn_val;
+#ifdef XTHREADS
+ if (dpy->lock)
+ (*dpy->lock->user_lock_display)(dpy);
+ UnlockDisplay(dpy);
+#endif
+ rtn_val = (*_XErrorFunction)(dpy, (XErrorEvent *)&event); /* upcall */
+#ifdef XTHREADS
+ LockDisplay(dpy);
+ if (dpy->lock)
+ (*dpy->lock->user_unlock_display)(dpy);
+#endif
+ return rtn_val;
} else {
return _XDefaultError(dpy, (XErrorEvent *)&event);
}