diff options
Diffstat (limited to 'source/x')
-rw-r--r-- | source/x/x11/build/libX11 | 2 | ||||
-rw-r--r-- | source/x/x11/build/xvidtune | 2 | ||||
-rw-r--r-- | source/x/x11/patch/libX11.patch | 1 | ||||
-rw-r--r-- | source/x/x11/patch/libX11/eb1c272ab5230d548077b9f59aca4b3457c3a8f8.patch | 205 |
4 files changed, 2 insertions, 208 deletions
diff --git a/source/x/x11/build/libX11 b/source/x/x11/build/libX11 index 0cfbf0888..d00491fd7 100644 --- a/source/x/x11/build/libX11 +++ b/source/x/x11/build/libX11 @@ -1 +1 @@ -2 +1 diff --git a/source/x/x11/build/xvidtune b/source/x/x11/build/xvidtune index 7ed6ff82d..d00491fd7 100644 --- a/source/x/x11/build/xvidtune +++ b/source/x/x11/build/xvidtune @@ -1 +1 @@ -5 +1 diff --git a/source/x/x11/patch/libX11.patch b/source/x/x11/patch/libX11.patch deleted file mode 100644 index 4ba7a9dda..000000000 --- a/source/x/x11/patch/libX11.patch +++ /dev/null @@ -1 +0,0 @@ -zcat $CWD/patch/libX11/eb1c272ab5230d548077b9f59aca4b3457c3a8f8.patch.gz | patch -p1 --backup --suffix=.orig || { touch ${SLACK_X_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/source/x/x11/patch/libX11/eb1c272ab5230d548077b9f59aca4b3457c3a8f8.patch b/source/x/x11/patch/libX11/eb1c272ab5230d548077b9f59aca4b3457c3a8f8.patch deleted file mode 100644 index badc4e5eb..000000000 --- a/source/x/x11/patch/libX11/eb1c272ab5230d548077b9f59aca4b3457c3a8f8.patch +++ /dev/null @@ -1,205 +0,0 @@ -From eb1c272ab5230d548077b9f59aca4b3457c3a8f8 Mon Sep 17 00:00:00 2001 -From: GaryOderNichts <garyodernichts@gmail.com> -Date: Sat, 17 Dec 2022 16:28:40 +0100 -Subject: [PATCH] Fix a9e845 and 797755 Allow X*IfEvent() to reenter libX11 - ---- - include/X11/Xlibint.h | 9 +++++- - src/ChkIfEv.c | 5 +++- - src/IfEvent.c | 5 +++- - src/PeekIfEv.c | 5 +++- - src/locking.c | 65 +++++++++---------------------------------- - 5 files changed, 33 insertions(+), 56 deletions(-) - -diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h -index e20c4833..50099b43 100644 ---- a/include/X11/Xlibint.h -+++ b/include/X11/Xlibint.h -@@ -43,6 +43,10 @@ from The Open Group. - #include <X11/Xproto.h> /* to declare xEvent */ - #include <X11/XlibConf.h> /* for configured options like XTHREADS */ - -+#ifdef XTHREADS -+#include <X11/Xthreads.h> -+#endif -+ - /* The Xlib structs are full of implicit padding to properly align members. - We can't clean that up without breaking ABI, so tell clang not to bother - complaining about it. */ -@@ -207,7 +211,10 @@ struct _XDisplay - - XIOErrorExitHandler exit_handler; - void *exit_handler_data; -- CARD32 in_ifevent; -+ CARD32 in_ifevent; -+#ifdef XTHREADS -+ xthread_t ifevent_thread; -+#endif - }; - - #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n) -diff --git a/src/ChkIfEv.c b/src/ChkIfEv.c -index b32c2d3e..66636696 100644 ---- a/src/ChkIfEv.c -+++ b/src/ChkIfEv.c -@@ -49,8 +49,11 @@ Bool XCheckIfEvent ( - unsigned long qe_serial = 0; - int n; /* time through count */ - -- dpy->in_ifevent++; - LockDisplay(dpy); -+#ifdef XTHREADS -+ dpy->ifevent_thread = xthread_self(); -+#endif -+ dpy->in_ifevent++; - prev = NULL; - for (n = 3; --n >= 0;) { - for (qelt = prev ? prev->next : dpy->head; -diff --git a/src/IfEvent.c b/src/IfEvent.c -index 54c37f00..35c592e3 100644 ---- a/src/IfEvent.c -+++ b/src/IfEvent.c -@@ -48,8 +48,11 @@ XIfEvent ( - register _XQEvent *qelt, *prev; - unsigned long qe_serial = 0; - -- dpy->in_ifevent++; - LockDisplay(dpy); -+#ifdef XTHREADS -+ dpy->ifevent_thread = xthread_self(); -+#endif -+ dpy->in_ifevent++; - prev = NULL; - while (1) { - for (qelt = prev ? prev->next : dpy->head; -diff --git a/src/PeekIfEv.c b/src/PeekIfEv.c -index 68c028b7..754749a7 100644 ---- a/src/PeekIfEv.c -+++ b/src/PeekIfEv.c -@@ -49,8 +49,11 @@ XPeekIfEvent ( - register _XQEvent *prev, *qelt; - unsigned long qe_serial = 0; - -- dpy->in_ifevent++; - LockDisplay(dpy); -+#ifdef XTHREADS -+ dpy->ifevent_thread = xthread_self(); -+#endif -+ dpy->in_ifevent++; - prev = NULL; - while (1) { - for (qelt = prev ? prev->next : dpy->head; -diff --git a/src/locking.c b/src/locking.c -index c550603e..3625bd27 100644 ---- a/src/locking.c -+++ b/src/locking.c -@@ -240,7 +240,9 @@ static void _XUnlockDisplay( - if (lock_hist_loc >= LOCK_HIST_SIZE) - lock_hist_loc = 0; - #endif /* XTHREADS_WARN */ -- xmutex_unlock(dpy->lock->mutex); -+ -+ if (dpy->in_ifevent == 0 || !xthread_equal(dpy->ifevent_thread, xthread_self())) -+ xmutex_unlock(dpy->lock->mutex); - } - - -@@ -453,63 +455,24 @@ static void _XDisplayLockWait( - } - - static void _XLockDisplay( -- Display *dpy -- XTHREADS_FILE_LINE_ARGS -- ); -- --static void _XIfEventLockDisplay( - Display *dpy - XTHREADS_FILE_LINE_ARGS - ) - { -- /* assert(dpy->in_ifevent); */ --} -+ struct _XErrorThreadInfo *ti; - --static void _XInternalLockDisplay( -- Display *dpy, -- Bool wskip -- XTHREADS_FILE_LINE_ARGS -- ); -+ if (dpy->in_ifevent && xthread_equal(dpy->ifevent_thread, xthread_self())) -+ return; - --static void _XIfEventInternalLockDisplay( -- Display *dpy, -- Bool wskip -- XTHREADS_FILE_LINE_ARGS -- ) --{ -- /* assert(dpy->in_ifevent); */ --} -- --static void _XIfEventUnlockDisplay( -- Display *dpy -- XTHREADS_FILE_LINE_ARGS -- ) --{ -- if (dpy->in_ifevent == 0) { -- dpy->lock_fns->lock_display = _XLockDisplay; -- dpy->lock_fns->unlock_display = _XUnlockDisplay; -- dpy->lock->internal_lock_display = _XInternalLockDisplay; -- UnlockDisplay(dpy); -- } else -- return; --} -- --static void _XLockDisplay( -- Display *dpy -- XTHREADS_FILE_LINE_ARGS -- ) --{ --#ifdef XTHREADS -- struct _XErrorThreadInfo *ti; --#endif - #ifdef XTHREADS_WARN - _XLockDisplayWarn(dpy, file, line); - #else - xmutex_lock(dpy->lock->mutex); - #endif -+ - if (dpy->lock->locking_level > 0) -- _XDisplayLockWait(dpy); --#ifdef XTHREADS -+ _XDisplayLockWait(dpy); -+ - /* - * Skip the two function calls below which may generate requests - * when LockDisplay is called from within _XError. -@@ -517,14 +480,9 @@ static void _XLockDisplay( - for (ti = dpy->error_threads; ti; ti = ti->next) - if (ti->error_thread == xthread_self()) - return; --#endif -+ - _XIDHandler(dpy); - _XSeqSyncFunction(dpy); -- if (dpy->in_ifevent) { -- dpy->lock_fns->lock_display = _XIfEventLockDisplay; -- dpy->lock_fns->unlock_display = _XIfEventUnlockDisplay; -- dpy->lock->internal_lock_display = _XIfEventInternalLockDisplay; -- } - } - - /* -@@ -537,6 +495,9 @@ static void _XInternalLockDisplay( - XTHREADS_FILE_LINE_ARGS - ) - { -+ if (dpy->in_ifevent && xthread_equal(dpy->ifevent_thread, xthread_self())) -+ return; -+ - #ifdef XTHREADS_WARN - _XLockDisplayWarn(dpy, file, line); - #else --- -GitLab - |