diff --git a/bug-211314_p_drawable_privclean.diff b/bug-211314_p_drawable_privclean.diff index 420a8f6..ac9facf 100644 --- a/bug-211314_p_drawable_privclean.diff +++ b/bug-211314_p_drawable_privclean.diff @@ -64,8 +64,8 @@ Matthias Hopf ** Forward declarations. --- GL/mesa/X/xf86glx.c.orig 2007-01-23 12:48:28.000000000 +0100 -+++ GL/mesa/X/xf86glx.c 2007-01-23 19:37:23.000000000 +0100 -@@ -95,12 +95,70 @@ static XMesaVisual find_mesa_visual(__GL ++++ GL/mesa/X/xf86glx.c 2007-01-25 16:50:19.000000000 +0100 +@@ -95,12 +95,74 @@ static XMesaVisual find_mesa_visual(__GL static void @@ -123,15 +123,19 @@ Matthias Hopf __glXMesaDrawableDestroy(__GLXdrawable *base) { __GLXMESAdrawable *glxPriv = (__GLXMESAdrawable *) base; -+ ClientPtr client = __glXClients[CLIENT_ID(base->drawId)]->client; - if (glxPriv->xm_buf != NULL) + if (glxPriv->xm_buf != NULL) { + /* There may still be stray pointers in contexts that are no longer + * visible to Mesa. Scan all contexts for this client and nuke those + * pointers */ -+ FindClientResourcesByType(client, __glXContextRes, -+ __glXMesaDrawableDestoryCB, glxPriv); ++ int clientId = CLIENT_ID(base->drawId); ++ if (clientId >=0 && clientId < MAXCLIENTS+1 && __glXClients[clientId]) { ++ ClientPtr client = __glXClients[clientId]->client; ++ if (client) ++ FindClientResourcesByType(client, __glXContextRes, ++ __glXMesaDrawableDestoryCB, glxPriv); ++ } XMesaDestroyBuffer(glxPriv->xm_buf); + } xfree(glxPriv); diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 5650283..814fae7 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jan 25 17:56:57 CET 2007 - sndirsch@suse.de + +- bug-211314_p_drawable_privclean.diff: + * fixed for cleaning up pointers + ------------------------------------------------------------------- Wed Jan 24 19:17:06 CET 2007 - sndirsch@suse.de diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index db29cfc..62d67ca 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -21,7 +21,7 @@ BuildRequires: libjpeg-devel URL: http://xorg.freedesktop.org/ %define EXPERIMENTAL 0 Version: 7.2 -Release: 47 +Release: 48 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -498,6 +498,9 @@ exit 0 %endif %changelog -n xorg-x11-server +* Thu Jan 25 2007 - sndirsch@suse.de +- bug-211314_p_drawable_privclean.diff: + * fixed for cleaning up pointers * Wed Jan 24 2007 - sndirsch@suse.de - fixed build * Wed Jan 24 2007 - sndirsch@suse.de