Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Mar 2010 03:10:04 GMT
From:      Tim Kientzle <kientzle@freebsd.org>
To:        freebsd-x11@FreeBSD.org
Subject:   Re: ports/131930: [PATCH] x11-servers/xorg-server coredumps on exit
Message-ID:  <201003150310.o2F3A4Ob080790@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/131930; it has been noted by GNATS.

From: Tim Kientzle <kientzle@freebsd.org>
To: bug-followup@freebsd.org, peterjeremy@optushome.com.au
Cc:  
Subject: Re: ports/131930: [PATCH] x11-servers/xorg-server coredumps on exit
Date: Sun, 14 Mar 2010 19:42:13 -0700

 This is a multi-part message in MIME format.
 --------------040801070806060200050609
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: 7bit
 
 This is still happening as of March, 2010.
 
 I have a somewhat different diagnosis:  Window objects get
 freed without being removed from WindowTable, causing
 problems when events get broadcast to every window in
 the WindowTable.
 
 The attached patch alters the DeleteWindow function
 to look for references to the current window in the
 WindowTable and clear them.
 
 Patch attached.
 
 --------------040801070806060200050609
 Content-Type: text/x-c;
  name="patch-xorg-server-dix-window-DeleteWindow.c"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="patch-xorg-server-dix-window-DeleteWindow.c"
 
 --- 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;
  }
  
 
 --------------040801070806060200050609--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003150310.o2F3A4Ob080790>