Date: Sun, 14 Mar 2010 16:26:47 -0700 From: Tim Kientzle <kientzle@freebsd.org> To: Garrett Cooper <yanefbsd@gmail.com> Cc: freebsd-x11@freebsd.org, "'freebsd-current@freebsd.org'" <freebsd-current@freebsd.org> Subject: Re: X11 crash on exit Message-ID: <4B9D70B7.1020709@freebsd.org> In-Reply-To: <7d6fde3d1003141516q87b7a28i523c6cb0bc5f4f35@mail.gmail.com> References: <4B989064.5030105@freebsd.org> <7d6fde3d1003102245l41ab8287r81680aa40281d802@mail.gmail.com> <4B9C9885.5040601@freebsd.org> <20100314195622.GA88471@server.vk2pj.dyndns.org> <4B9D58B5.4050002@freebsd.org> <7d6fde3d1003141516q87b7a28i523c6cb0bc5f4f35@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------070107010404000104030706 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Garrett Cooper wrote: >> I implemented the fix I suggested earlier (scanning >> the WindowTable to remove Window objects as they're >> deleted) and it does consistently resolve the crash, >> but now the X server restarts itself when xinit asks >> it to exit, so there's clearly still something amiss. >> >> Patch attached for anyone interested. > > Patch, what patch? > -Garrett Apologies. Patch pasted below (for mailing list) and attached (for direct addressees): --- dix/window.c.orig 2009-10-11 19:52:40.000000000 -0700 +++ dix/window.c 2010-03-14 00:02:18.000000000 -0800 @@ -936,6 +936,7 @@ WindowPtr pParent; WindowPtr pWin = (WindowPtr)value; xEvent event; + int i; UnmapWindow(pWin, FALSE); @@ -964,6 +965,13 @@ xfree(dixLookupPrivate(&pWin->devPrivates, FocusPrivatesKey)); dixFreePrivates(pWin->devPrivates); xfree(pWin); + + for (i = 0; i < MAXSCREENS; ++i) + { + if (WindowTable[i] == pWin) + WindowTable[i] = NullWindow; + } + return Success; } --------------070107010404000104030706--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B9D70B7.1020709>