From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#7348: 23.2.50; Emacs crashes on fast window resize with scrollbars on under OSX Date: Mon, 08 Nov 2010 11:07:04 +0100 Message-ID: <4CD7CBC8.9010103@gmx.at> References: <4CD680B0.4060503@gmx.at> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1289211241 19941 80.91.229.12 (8 Nov 2010 10:14:01 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 8 Nov 2010 10:14:01 +0000 (UTC) Cc: Jakub Turski , 7348@debbugs.gnu.org To: YAMAMOTO Mitsuharu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Nov 08 11:13:55 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PFOjY-0005Of-1f for geb-bug-gnu-emacs@m.gmane.org; Mon, 08 Nov 2010 11:13:52 +0100 Original-Received: from localhost ([127.0.0.1]:34881 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PFOjX-000209-DP for geb-bug-gnu-emacs@m.gmane.org; Mon, 08 Nov 2010 05:13:51 -0500 Original-Received: from [140.186.70.92] (port=37766 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PFOjQ-0001zs-Bx for bug-gnu-emacs@gnu.org; Mon, 08 Nov 2010 05:13:45 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PFOjP-0007eD-As for bug-gnu-emacs@gnu.org; Mon, 08 Nov 2010 05:13:44 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:36892) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PFOjP-0007e7-6y for bug-gnu-emacs@gnu.org; Mon, 08 Nov 2010 05:13:43 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1PFOZ4-0002tW-Gv; Mon, 08 Nov 2010 05:03:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Nov 2010 10:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 7348 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 7348-submit@debbugs.gnu.org id=B7348.128921055311117 (code B ref 7348); Mon, 08 Nov 2010 10:03:02 +0000 Original-Received: (at 7348) by debbugs.gnu.org; 8 Nov 2010 10:02:33 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1PFOYb-0002tG-4K for submit@debbugs.gnu.org; Mon, 08 Nov 2010 05:02:33 -0500 Original-Received: from mailout-de.gmx.net ([213.165.64.22] helo=mail.gmx.net) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from ) id 1PFOYX-0002tB-Pu for 7348@debbugs.gnu.org; Mon, 08 Nov 2010 05:02:31 -0500 Original-Received: (qmail invoked by alias); 08 Nov 2010 10:07:06 -0000 Original-Received: from 62-47-50-212.adsl.highway.telekom.at (EHLO [62.47.50.212]) [62.47.50.212] by mail.gmx.net (mp068) with SMTP; 08 Nov 2010 11:07:06 +0100 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1/hKlsDsZXh9oT4KhBsPVy4LQrj6m+xYtwOvCOXjZ c4vzIQw02bggrf User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) In-Reply-To: X-Y-GMX-Trusted: 0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Mon, 08 Nov 2010 05:03:02 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:41431 Archived-At: > The call to do_pending_window_change at line 11397 in xdisp.c > (emacs-23 branch) seems to change selected_window because of the > following call chain, but the variable `w' in redisplay_internal still > points to the old selected window. > > redisplay_internal > -> do_pending_window_change > -> change_frame_size > -> change_frame_size_1 > -> set_window_height > -> size_window > -> delete_window (/* Delete WINDOW if it's too small. */) That's bad. So basing redisplay_internal entirely on struct window *w = XWINDOW (selected_window); is inherently broken. But simply reassigning w = XWINDOW (selected_window); after every do_pending_window_change call is hairy since it changes the selected window under our feet, so any things done for the window that was selected before the call would probably have to be redone for the now selected window. OTOH going back to retry after every call that might have changed the selected window could get us into an infinite loop. (BTW, do we really need up all three do_pending_window_change calls in redisplay_internal?) martin