commit: abf93bc0441052ca9e3c5782114d13c6b68886fb Author: Michael Mair-Keimberger <mmk <AT> levelnine <DOT> at> AuthorDate: Sat Feb 4 22:38:58 2023 +0000 Commit: Alfredo Tupone <tupone <AT> gentoo <DOT> org> CommitDate: Mon Feb 20 21:07:35 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abf93bc0
x11-libs/libX11: remove unused patch Signed-off-by: Michael Mair-Keimberger <mmk <AT> levelnine.at> Closes: https://github.com/gentoo/gentoo/pull/29430 Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org> .../libX11/files/libX11-1.8.2-reentrancy.patch | 149 --------------------- 1 file changed, 149 deletions(-) diff --git a/x11-libs/libX11/files/libX11-1.8.2-reentrancy.patch b/x11-libs/libX11/files/libX11-1.8.2-reentrancy.patch deleted file mode 100644 index 784adaeb008f..000000000000 --- a/x11-libs/libX11/files/libX11-1.8.2-reentrancy.patch +++ /dev/null @@ -1,149 +0,0 @@ -https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/a9e845809bcaae22496bc8aa3ca252b410d5f39b -https://bugs.gentoo.org/862115 - -From a9e845809bcaae22496bc8aa3ca252b410d5f39b Mon Sep 17 00:00:00 2001 -From: Matthieu Herrb <[email protected]> -Date: Fri, 11 Nov 2022 18:55:23 +0100 -Subject: [PATCH] Fix 797755 Allow X*IfEvent() to reenter libX11 - -- the activation logic is reversed -- there is also _XInternalLockDisplay() that needs protection -- I've found cases (in fvwm2) where the callback calls XCheckIfEvent() - recursively. So the flag needs to be a counter. - -Reviewed-by: Adam Jackson <[email protected]> ---- a/include/X11/Xlibint.h -+++ b/include/X11/Xlibint.h -@@ -207,7 +207,7 @@ struct _XDisplay - - XIOErrorExitHandler exit_handler; - void *exit_handler_data; -- Bool in_ifevent; -+ CARD32 in_ifevent; - }; - - #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n) ---- a/src/ChkIfEv.c -+++ b/src/ChkIfEv.c -@@ -49,8 +49,8 @@ Bool XCheckIfEvent ( - unsigned long qe_serial = 0; - int n; /* time through count */ - -+ dpy->in_ifevent++; - LockDisplay(dpy); -- dpy->in_ifevent = True; - prev = NULL; - for (n = 3; --n >= 0;) { - for (qelt = prev ? prev->next : dpy->head; -@@ -80,7 +80,7 @@ Bool XCheckIfEvent ( - /* another thread has snatched this event */ - prev = NULL; - } -- dpy->in_ifevent = False; -+ dpy->in_ifevent--; - UnlockDisplay(dpy); - return False; - } ---- a/src/IfEvent.c -+++ b/src/IfEvent.c -@@ -48,8 +48,8 @@ XIfEvent ( - register _XQEvent *qelt, *prev; - unsigned long qe_serial = 0; - -+ dpy->in_ifevent++; - LockDisplay(dpy); -- dpy->in_ifevent = True; - prev = NULL; - while (1) { - for (qelt = prev ? prev->next : dpy->head; -@@ -60,7 +60,7 @@ XIfEvent ( - *event = qelt->event; - _XDeq(dpy, prev, qelt); - _XStoreEventCookie(dpy, event); -- dpy->in_ifevent = False; -+ dpy->in_ifevent--; - UnlockDisplay(dpy); - return 0; - } ---- a/src/OpenDis.c -+++ b/src/OpenDis.c -@@ -189,7 +189,7 @@ XOpenDisplay ( - dpy->xcmisc_opcode = 0; - dpy->xkb_info = NULL; - dpy->exit_handler_data = NULL; -- dpy->in_ifevent = False; -+ dpy->in_ifevent = 0; - - /* - * Setup other information in this display structure. ---- a/src/PeekIfEv.c -+++ b/src/PeekIfEv.c -@@ -49,8 +49,8 @@ XPeekIfEvent ( - register _XQEvent *prev, *qelt; - unsigned long qe_serial = 0; - -+ dpy->in_ifevent++; - LockDisplay(dpy); -- dpy->in_ifevent = True; - prev = NULL; - while (1) { - for (qelt = prev ? prev->next : dpy->head; -@@ -64,7 +64,7 @@ XPeekIfEvent ( - _XStoreEventCookie(dpy, ©); - *event = copy; - } -- dpy->in_ifevent = False; -+ dpy->in_ifevent--; - UnlockDisplay(dpy); - return 0; - } ---- a/src/locking.c -+++ b/src/locking.c -@@ -465,17 +465,33 @@ static void _XIfEventLockDisplay( - /* assert(dpy->in_ifevent); */ - } - -+static void _XInternalLockDisplay( -+ Display *dpy, -+ Bool wskip -+ XTHREADS_FILE_LINE_ARGS -+ ); -+ -+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) -+ 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; -- -- dpy->lock_fns->lock_display = _XLockDisplay; -- dpy->lock_fns->unlock_display = _XUnlockDisplay; -- UnlockDisplay(dpy); - } - - static void _XLockDisplay( -@@ -507,6 +523,7 @@ static void _XLockDisplay( - if (dpy->in_ifevent) { - dpy->lock_fns->lock_display = _XIfEventLockDisplay; - dpy->lock_fns->unlock_display = _XIfEventUnlockDisplay; -+ dpy->lock->internal_lock_display = _XIfEventInternalLockDisplay; - } - } - -GitLab
