From unknown Tue Jun 17 20:28:50 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#11984 <11984@debbugs.gnu.org> To: bug#11984 <11984@debbugs.gnu.org> Subject: Status: 24.1; segfault while deleting a window Reply-To: bug#11984 <11984@debbugs.gnu.org> Date: Wed, 18 Jun 2025 03:28:50 +0000 retitle 11984 24.1; segfault while deleting a window reassign 11984 emacs submitter 11984 Russell Sim severity 11984 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 18 22:16:09 2012 Received: (at submit) by debbugs.gnu.org; 19 Jul 2012 02:16:09 +0000 Received: from localhost ([127.0.0.1]:49170 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SrgHf-0001QY-Nt for submit@debbugs.gnu.org; Wed, 18 Jul 2012 22:16:08 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55414) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SrcWC-0001ei-MK for submit@debbugs.gnu.org; Wed, 18 Jul 2012 18:14:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SrcQF-0008KW-0T for submit@debbugs.gnu.org; Wed, 18 Jul 2012 18:08:44 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:36965) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrcQE-0008KS-TP for submit@debbugs.gnu.org; Wed, 18 Jul 2012 18:08:42 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47390) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrcQD-0001RY-C3 for bug-gnu-emacs@gnu.org; Wed, 18 Jul 2012 18:08:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SrcQB-0008K3-IC for bug-gnu-emacs@gnu.org; Wed, 18 Jul 2012 18:08:41 -0400 Received: from mail-pb0-f41.google.com ([209.85.160.41]:44011) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SrcQB-0008Ju-8R for bug-gnu-emacs@gnu.org; Wed, 18 Jul 2012 18:08:39 -0400 Received: by pbbrp2 with SMTP id rp2so3825623pbb.0 for ; Wed, 18 Jul 2012 15:08:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:user-agent:mime-version :content-type; bh=ckR8HxesqFMxTdSbR87CWfyCjr5bb2KoTC47xIcJlgQ=; b=zx3ieVNVOmZEwyaISJkPCpnwva1u+WoJGQIbJbFO8l3zvyxKQQMPNCxp/r9Jf7Ksrn NVAFMFCOPMkcwcpQO2iX2u8Vz+1F0XQWoiwAvdm0MIAGxyg9ZKAn+7LF2ZLT+gvD6vdZ Q5LU+iemQF6bl+8ghjE3Y++OxpPLDcHZrT4iv9fmczrnmknV3nhsqrIbW/ikzINA15kG wdHnBXTDKsaEcDimpcWbZVf0fgAcxvmMXDHdWTLvTOejoxWoa8Joiw9pPTqle+rKlGfR +05lwvLNnf97UdWxJYZSz42laTdqQH8M2rBMj20wih6Ftw4pXHPzFSRNreb+Dir3WxBi p0gQ== Received: by 10.68.220.39 with SMTP id pt7mr62593pbc.40.1342649318166; Wed, 18 Jul 2012 15:08:38 -0700 (PDT) Received: from marvin.home (2001-44b8-415c-cc01-a800-04ff-fe00-0a04.static.ipv6.internode.on.net. [2001:44b8:415c:cc01:a800:4ff:fe00:a04]) by mx.google.com with ESMTPS id ot4sm366877pbb.65.2012.07.18.15.08.36 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 18 Jul 2012 15:08:37 -0700 (PDT) From: Russell Sim To: bug-gnu-emacs@gnu.org Subject: 24.1; segfault while deleting a window Date: Thu, 19 Jul 2012 08:08:32 +1000 Message-ID: User-Agent: Gnus/5.130004 (Ma Gnus v0.4) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.1 (------) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 18 Jul 2012 22:16:06 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.1 (------) Hi, So I recently started playing around with the python-mode test cases and during the batch mode execution I seem to be able to induce a segfault every time. I'm running a build of the emacs24.1 tag from the git repository, the ref is d2ba302127b8dac9b3e02db5c403293982e60e84. This isn't strictly run with -Q because there are a bunch of tests that are loaded but it is a consistent case and I can easily gather more information if needed. Here is the core dump from one of the crashes http://russellsim.org/emacs-24.d2ba302.core I made it with debug enabled if you would like any more info i would be glad to provide it. Cheers, Russell #0 0x000000000048c435 in Fdelete_other_windows_internal (window=24353749, root=24387925) at window.c:2649 #1 0x0000000000602831 in Ffuncall (nargs=3, args=0x7ffffffe3e30) at eval.c:3005 #2 0x000000000064dc18 in exec_byte_code (bytestr=9704177, vector=9704229, maxdepth=20, args_template=12726818, nargs=0, args=0x0) at bytecode.c:785 #3 0x000000000064d183 in Fbyte_code (bytestr=9704177, vector=9704229, maxdepth=20) at bytecode.c:423 #4 0x00000000006011ef in eval_sub (form=9704150) at eval.c:2356 #5 0x00000000005fee2b in internal_catch (tag=13220914, func=0x600b55 , arg=9704150) at eval.c:1272 #6 0x000000000064e877 in exec_byte_code (bytestr=9703985, vector=9704021, maxdepth=16, args_template=12726818, nargs=0, args=0x0) at bytecode.c:966 #7 0x0000000000603231 in funcall_lambda (fun=9703925, nargs=0, arg_vector=0x7ffffffe48f0) at eval.c:3233 #8 0x0000000000602d38 in apply_lambda (fun=9703925, args=12726818) at eval.c:3110 #9 0x00000000006013b4 in eval_sub (form=22167222) at eval.c:2395 #10 0x00000000005fd383 in Fprogn (args=24543862) at eval.c:364 #11 0x00000000005fea78 in Flet (args=24543814) at eval.c:1120 #12 0x0000000000600eae in eval_sub (form=24543798) at eval.c:2298 #13 0x0000000000601488 in eval_sub (form=23627398) at eval.c:2411 #14 0x00000000005fd383 in Fprogn (args=23627494) at eval.c:364 #15 0x00000000005fea78 in Flet (args=23627382) at eval.c:1120 #16 0x0000000000600eae in eval_sub (form=23627318) at eval.c:2298 #17 0x00000000005fd383 in Fprogn (args=23627510) at eval.c:364 #18 0x00000000006031cc in funcall_lambda (fun=23627526, nargs=1, arg_vector=0x7ffffffe53d8) at eval.c:3226 #19 0x0000000000602acd in Ffuncall (nargs=2, args=0x7ffffffe53d0) at eval.c:3063 #20 0x00000000005fcaa6 in Fcall_interactively (function=22507826, record_flag=12726818, keys=12773141) at callint.c:852 #21 0x0000000000602860 in Ffuncall (nargs=4, args=0x7ffffffe56f0) at eval.c:3009 #22 0x0000000000602066 in call3 (fn=12867138, arg1=22507826, arg2=12726818, arg3=12726818) at eval.c:2802 #23 0x00000000005767d7 in Fcommand_execute (cmd=22507826, record_flag=12726818, keys=12726818, special=12726818) at keyboard.c:10330 #24 0x0000000000602893 in Ffuncall (nargs=2, args=0x7ffffffe5910) at eval.c:3013 #25 0x000000000064dc18 in exec_byte_code (bytestr=9958345, vector=9958381, maxdepth=88, args_template=1028, nargs=1, args=0x7ffffffe5e10) at bytecode.c:785 #26 0x0000000000602f5b in funcall_lambda (fun=9958293, nargs=1, arg_vector=0x7ffffffe5e08) at eval.c:3167 #27 0x0000000000602a19 in Ffuncall (nargs=2, args=0x7ffffffe5e00) at eval.c:3051 #28 0x000000000064dc18 in exec_byte_code (bytestr=9934113, vector=9934149, maxdepth=72, args_template=0, nargs=0, args=0x7ffffffe6350) at bytecode.c:785 #29 0x0000000000602f5b in funcall_lambda (fun=9934061, nargs=0, arg_vector=0x7ffffffe6350) at eval.c:3167 #30 0x0000000000602a19 in Ffuncall (nargs=1, args=0x7ffffffe6348) at eval.c:3051 #31 0x000000000064dc18 in exec_byte_code (bytestr=9928657, vector=9928693, maxdepth=32, args_template=0, nargs=0, args=0x7ffffffe6780) at bytecode.c:785 #32 0x0000000000602f5b in funcall_lambda (fun=9928605, nargs=0, arg_vector=0x7ffffffe6780) at eval.c:3167 #33 0x0000000000602d38 in apply_lambda (fun=9928605, args=12726818) at eval.c:3110 #34 0x00000000006013b4 in eval_sub (form=13141254) at eval.c:2395 #35 0x0000000000600b43 in Feval (form=13141254, lexical=12726818) at eval.c:2204 #36 0x0000000000563b51 in top_level_2 () at keyboard.c:1169 #37 0x00000000005ff4a1 in internal_condition_case (bfun=0x563b34 , handlers=12779106, hfun=0x563710 ) at eval.c:1515 #38 0x0000000000563b8b in top_level_1 (ignore=12726818) at keyboard.c:1177 #39 0x00000000005fee2b in internal_catch (tag=12774850, func=0x563b53 , arg=12726818) at eval.c:1272 #40 0x0000000000563aaf in command_loop () at keyboard.c:1132 #41 0x0000000000563254 in recursive_edit_1 () at keyboard.c:759 #42 0x00000000005633f7 in Frecursive_edit () at keyboard.c:823 #43 0x0000000000561494 in main (argc=1739, argv=0x7ffffffe71a8) at emacs.c:1715 In GNU Emacs 24.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10) of 2012-07-18 on marvin Windowing system distributor `The X.Org Foundation', version 11.0.11104000 Configured using: `configure 'CFLAGS=-ggdb3 -O0' 'CXXFLAGS=-ggdb3 -O0' 'LDFLAGS=-ggdb3'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_AU.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Comint Minor modes in effect: shell-dirtrack-mode: t compilation-shell-minor-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x r e p o r t Recent messages: Saving file /home/russell/tmp/classblah.py... Wrote /home/russell/tmp/classblah.py Can't find completion for "CLASS_INS.someDe" Scanning for dabbrevs...done Expansion found in 'classblah.py' pycomplete-same-folder-class-lp:889052-test passed python-shell-complete-test passed usr-bin-python2.7-shell-complete-test passed progn: Wrong type argument: char-or-string-p, nil Making completion list... Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message byte-opt format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils help-mode view vc-git thingatpt dabbrev noutline outline py-shell-completion-tests python-extended-executes-test python-mode-test py-bug-numbered-tests pycomplete python-mode easymenu easy-mmode edmacro kmacro imenu flymake rx shell pcomplete compile skeleton bytecomp byte-compile cconv macroexp comint derived ansi-color ring cl cc-cmds cc-engine cc-vars cc-defs regexp-opt cc-bytecomp pymacs advice help-fns advice-preload time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 18 23:12:47 2012 Received: (at 11984) by debbugs.gnu.org; 19 Jul 2012 03:12:47 +0000 Received: from localhost ([127.0.0.1]:49197 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SrhAU-0003ph-Gi for submit@debbugs.gnu.org; Wed, 18 Jul 2012 23:12:47 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:64248) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SrhAR-0003pY-En for 11984@debbugs.gnu.org; Wed, 18 Jul 2012 23:12:45 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0M7E00I000JIVO00@a-mtaout20.012.net.il> for 11984@debbugs.gnu.org; Thu, 19 Jul 2012 06:05:20 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M7E00I9U0KVVI10@a-mtaout20.012.net.il>; Thu, 19 Jul 2012 06:05:19 +0300 (IDT) Date: Thu, 19 Jul 2012 06:05:32 +0300 From: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window In-reply-to: X-012-Sender: halo1@inter.net.il To: Russell Sim Message-id: <83r4s88n7n.fsf@gnu.org> References: X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11984 Cc: 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Russell Sim > Date: Thu, 19 Jul 2012 08:08:32 +1000 > > So I recently started playing around with the python-mode test cases and > during the batch mode execution I seem to be able to induce a segfault > every time. I'm running a build of the emacs24.1 tag from the git > repository, the ref is d2ba302127b8dac9b3e02db5c403293982e60e84. > > > This isn't strictly run with -Q because there are a bunch of tests that > are loaded but it is a consistent case and I can easily gather more > information if needed. Here is the core dump from one of the crashes > http://russellsim.org/emacs-24.d2ba302.core I made it with debug enabled > if you would like any more info i would be glad to provide it. > > Cheers, > Russell > > > > #0 0x000000000048c435 in Fdelete_other_windows_internal (window=24353749, root=24387925) at window.c:2649 > #1 0x0000000000602831 in Ffuncall (nargs=3, args=0x7ffffffe3e30) at eval.c:3005 Please see if this isn't a duplicate of #11677. From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 18 23:46:04 2012 Received: (at 11984) by debbugs.gnu.org; 19 Jul 2012 03:46:04 +0000 Received: from localhost ([127.0.0.1]:49216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Srhgh-0004Yy-Ot for submit@debbugs.gnu.org; Wed, 18 Jul 2012 23:46:04 -0400 Received: from mail-yw0-f44.google.com ([209.85.213.44]:39213) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Srhgf-0004YZ-BA for 11984@debbugs.gnu.org; Wed, 18 Jul 2012 23:46:02 -0400 Received: by yhq56 with SMTP id 56so2315685yhq.3 for <11984@debbugs.gnu.org>; Wed, 18 Jul 2012 20:39:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=qjVBV7dyLvA7gmBhwrVHCZ8/pdFoqAnjQx07w/txWxY=; b=DwSSbBc7s+lHfk4q1HkkdICJ8y+/Yi1Covt3tHkyfokG/TPfoBfDOErQ5siqABvaQa ziJxr5VA1xarQDPw9JmUOev31E+Azw2KtlcWKpbs8npjBErgceZScabKEKq14HoxToft MDeuPoJ8KZiFJhZjnP45DJY0o9BIWS8NfHs3Vh1D5xwvjI6xdDBWzbsC28EvbVRnGtR7 5orhKqQRuTf99M+whOQLHWvK6v1O1RDfAapPWvGO39EG6t4OPKBag3xqBZyPojQvaPJ+ dFNknXe1E9DwSab7ovlq324nAijzy7ZL7cu20lAwxckdcn4NTwFYT2ppM/a0LOPD1NxG T4cw== Received: by 10.66.85.231 with SMTP id k7mr240268paz.76.1342669191138; Wed, 18 Jul 2012 20:39:51 -0700 (PDT) Received: from ulysses (cm162.gamma80.maxonline.com.sg. [202.156.80.162]) by mx.google.com with ESMTPS id pc6sm869292pbc.47.2012.07.18.20.39.48 (version=SSLv3 cipher=OTHER); Wed, 18 Jul 2012 20:39:50 -0700 (PDT) From: Chong Yidong To: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> Date: Thu, 19 Jul 2012 11:39:47 +0800 In-Reply-To: <83r4s88n7n.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 19 Jul 2012 06:05:32 +0300") Message-ID: <87txx47724.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: Russell Sim , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Eli Zaretskii writes: > Please see if this isn't a duplicate of #11677. I think the fix for 11677 doesn't go far enough. I can still produce a crash on trunk by calling delete-other-windows-internal for a window on a dead frame: M-: (setq w (selected-window)) RET M-: (setq f (selected-frame)) RET C-x 5 2 M-: (delete-frame f) RET M-: (delete-other-windows-internal w) RET Fatal error (11)Segmentation fault (core dumped) There's a similar problem with window-absolute-pixel-edges. I committed a fix to the emacs-24 branch adding CHECK_LIVE_FRAME calls to those two functions (patch below). But for long-term safety, I think decode_any_windows had better signal an error if the window's frame isn't live. But I'm not sure if there's any subtle reliance in existing code on allowing window functions to be called for windows on dead frames---anyone know? *** src/ChangeLog 2012-07-14 10:46:56 +0000 --- src/ChangeLog 2012-07-19 03:33:08 +0000 *************** *** 1,3 **** --- 1,9 ---- + 2012-07-19 Chong Yidong + + * window.c (Fwindow_absolute_pixel_edges) + (Fdelete_other_windows_internal): Signal an error if the window is + on a dead frame (Bug#11984). + 2012-07-14 Eli Zaretskii Remove FILE_SYSTEM_CASE. === modified file 'src/window.c' *** src/window.c 2012-04-23 16:22:23 +0000 --- src/window.c 2012-07-19 03:33:08 +0000 *************** *** 484,492 **** (Lisp_Object window, Lisp_Object limit) { register struct window *w = decode_any_window (window); - w->combination_limit = limit; - return w->combination_limit; } --- 484,490 ---- *************** *** 800,805 **** --- 798,805 ---- { register struct window *w = decode_any_window (window); int add_x, add_y; + + CHECK_LIVE_FRAME (w->frame); calc_absolute_offset (w, &add_x, &add_y); return Fcons (make_number (WINDOW_LEFT_EDGE_X (w) + add_x), *************** *** 2568,2573 **** --- 2568,2574 ---- Mouse_HLInfo *hlinfo; w = decode_any_window (window); + CHECK_LIVE_FRAME (w->frame); XSETWINDOW (window, w); f = XFRAME (w->frame); *************** *** 2581,2586 **** --- 2582,2588 ---- /* ROOT must be an ancestor of WINDOW. */ { r = decode_any_window (root); + CHECK_LIVE_FRAME (r->frame); pwindow = XWINDOW (window)->parent; while (!NILP (pwindow)) if (EQ (pwindow, root)) From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 19 06:47:14 2012 Received: (at 11984) by debbugs.gnu.org; 19 Jul 2012 10:47:14 +0000 Received: from localhost ([127.0.0.1]:49598 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SroGI-0007Ow-F5 for submit@debbugs.gnu.org; Thu, 19 Jul 2012 06:47:14 -0400 Received: from mailout-de.gmx.net ([213.165.64.22]:39992) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1SroGG-0007Op-7J for 11984@debbugs.gnu.org; Thu, 19 Jul 2012 06:47:13 -0400 Received: (qmail invoked by alias); 19 Jul 2012 10:40:58 -0000 Received: from 62-47-39-3.adsl.highway.telekom.at (EHLO [62.47.39.3]) [62.47.39.3] by mail.gmx.net (mp030) with SMTP; 19 Jul 2012 12:40:58 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1+FXCwc4RyFeMmTNReBnR2Qwc4UxbVZjLGbcY7EGB 9+eD0PfdFIKXHT Message-ID: <5007E473.7080303@gmx.at> Date: Thu, 19 Jul 2012 12:41:55 +0200 From: martin rudalics MIME-Version: 1.0 To: Chong Yidong Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> In-Reply-To: <87txx47724.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11984 Cc: Eli Zaretskii , Russell Sim , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > But for long-term safety, I think > decode_any_windows had better signal an error if the window's frame > isn't live. But I'm not sure if there's any subtle reliance in existing > code on allowing window functions to be called for windows on dead > frames---anyone know? Maybe the best way to find out is to install such a change? martin From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 20 19:50:52 2012 Received: (at 11984) by debbugs.gnu.org; 20 Jul 2012 23:50:52 +0000 Received: from localhost ([127.0.0.1]:53218 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsMyA-00039X-Kv for submit@debbugs.gnu.org; Fri, 20 Jul 2012 19:50:51 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:56487) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsMy4-00039M-UK for 11984@debbugs.gnu.org; Fri, 20 Jul 2012 19:50:47 -0400 Received: by pbcwy7 with SMTP id wy7so6847242pbc.3 for <11984@debbugs.gnu.org>; Fri, 20 Jul 2012 16:44:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=cQbQss3UqkbbdHOEXJShSpungQOFA3f4BeQhPHmrjN8=; b=XthWoNLolYMq8rB90IWLzCUWOni+5vYN3yGmnAxz7aFTQto4mbJKXYmw4U4OSVgeyg SJrr5ineCmN4ZznQrmRn+oGC8IhM7mVyXkUGP7/QzaL3ZkRAgXXgmKpmAveEYLT+nsOu a2vVfBwfGMqKa323WUdtPtGy7L4RxnbL2owqUDElONsn1m2dco8PV2wdqbYoWylpSAmN nbHQAPlgEBgMYev2GV8Lqrha8LR1Dc22IKb3uaVyGbDszPJ7wYOxSXMp4WrJBAHO384w yxPl9H4xud8JuR8Arv1WzMH3R9ea5IwM4wDg3gPDPGLt24bkmLA5GpT4a26pu93+z73x JlAw== Received: by 10.68.218.133 with SMTP id pg5mr17437479pbc.140.1342827864551; Fri, 20 Jul 2012 16:44:24 -0700 (PDT) Received: from marvin.home (2001-44b8-415c-cc01-a800-04ff-fe00-0a04.static.ipv6.internode.on.net. [2001:44b8:415c:cc01:a800:4ff:fe00:a04]) by mx.google.com with ESMTPS id op10sm4842650pbc.75.2012.07.20.16.44.21 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 20 Jul 2012 16:44:24 -0700 (PDT) From: Russell Sim To: Chong Yidong Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> Date: Sat, 21 Jul 2012 09:44:17 +1000 In-Reply-To: <87txx47724.fsf@gnu.org> (Chong Yidong's message of "Thu, 19 Jul 2012 11:39:47 +0800") Message-ID: User-Agent: Gnus/5.130004 (Ma Gnus v0.4) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: Eli Zaretskii , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Chong Yidong writes: > Eli Zaretskii writes: > >> Please see if this isn't a duplicate of #11677. > > I think the fix for 11677 doesn't go far enough. I can still produce a > crash on trunk by calling delete-other-windows-internal for a window on > a dead frame: > > M-: (setq w (selected-window)) RET > M-: (setq f (selected-frame)) RET > C-x 5 2 > M-: (delete-frame f) RET > M-: (delete-other-windows-internal w) RET > Fatal error (11)Segmentation fault (core dumped) > > There's a similar problem with window-absolute-pixel-edges. > > I committed a fix to the emacs-24 branch adding CHECK_LIVE_FRAME calls > to those two functions (patch below). But for long-term safety, I think > decode_any_windows had better signal an error if the window's frame > isn't live. But I'm not sure if there's any subtle reliance in existing > code on allowing window functions to be called for windows on dead > frames---anyone know? Thanks for the champion effort, but I can still create the bug on emacs-24 3770cb4 which includes Chongs patch. Here is a full backtrace, and another core http://russellsim.org/emacs-24.3770cb4.core Cheers, Russell #0 0x000000000048c56f in Fdelete_other_windows_internal (window=3D23377989= , root=3D24273109) at window.c:2651 w =3D 0x164b840 r =3D 0x17260d0 s =3D 0xc59212 f =3D 0xc390d0 sibling =3D 812 pwindow =3D 23377989 swindow =3D 13333010 delta =3D 12726818 startpos =3D 1 top =3D 4 new_top =3D 32767 resize_failed =3D -115344 hlinfo =3D 0xc23222 #1 0x00000000006029a1 in Ffuncall (nargs=3D3, args=3D0x7ffffffe3e30) at ev= al.c:3005 fun =3D 9345349 original_fun =3D 12950978 funcar =3D 103079215107 numargs =3D 2 lisp_numargs =3D 12782626 val =3D 12726818 backtrace =3D {next =3D 0x7ffffffe42e0, function =3D 0x7ffffffe3e30= , args =3D 0x7ffffffe3e38, nargs =3D 2, debug_on_exit =3D 0} internal_args =3D 0x7ffffffe3e38 i =3D 12726818 #2 0x000000000064dd88 in exec_byte_code (bytestr=3D9699617, vector=3D96996= 69, maxdepth=3D20, args_template=3D12726818, nargs=3D0, args=3D0x0) at byte= code.c:785 count =3D 25 op =3D 2 vectorp =3D 0x940160 stack =3D {pc =3D 0xb6f0b9 "\210\323\r!\210\324\r!\210=D5=87", byte= _string =3D 9699617, byte_string_start =3D 0xb6f058 "\b\204U", constants = =3D 9699669, next =3D 0x7ffffffe4540} top =3D 0x7ffffffe3e30 result =3D 140737488241984 #3 0x000000000064d2f3 in Fbyte_code (bytestr=3D9699617, vector=3D9699669, = maxdepth=3D20) at bytecode.c:423 No locals. #4 0x000000000060135f in eval_sub (form=3D9699590) at eval.c:2356 numargs =3D 12 args_left =3D 12726818 i =3D 3 maxargs =3D 3 argvals =3D {9699617, 9699669, 20, 140737488241376, 140737488241384= , 1, 140737488241296, 5816636} fun =3D 12107941 val =3D 12816597 original_fun =3D 12866754 original_args =3D 9699606 funcar =3D 5815311 backtrace =3D {next =3D 0x7ffffffe4a80, function =3D 0x7ffffffe4310= , args =3D 0x7ffffffe4240, nargs =3D 3, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0x7ffffffe4310, var =3D 0x60212c, nvars =3D 12= 864482} gcpro2 =3D {next =3D 0xc23222, var =3D 0xc23222, nvars =3D 12726818} gcpro3 =3D {next =3D 0x1, var =3D 0x7ffffffe4240, nvars =3D 3} #5 0x00000000005fef9b in internal_catch (tag=3D13220914, func=3D0x600cc5 <= eval_sub>, arg=3D9699590) at eval.c:1272 c =3D {tag =3D 13220914, val =3D 12726818, next =3D 0x7ffffffe6a50,= gcpro =3D 0x0, jmp =3D {{__jmpbuf =3D {140737488242928, -69757560092786949= 19, 140737488242928, 140737488243584, 0, 0, -6975756009104631303,=20 6975756540123650553}, __mask_was_saved =3D 0, __saved_mask = =3D {__val =3D {6302601, 140737488241872, 16, 12726818, 94489280514, 140737= 488241872, 2, 140737488243328, 140737488241872, 140737488241880,=20 1, 24501732, 12769218, 12726818, 13453714, 1}}}}, backlis= t =3D 0x7ffffffe4a80, handlerlist =3D 0x7ffffffe6a20, lisp_eval_depth =3D 1= 0, pdlcount =3D 25, poll_suppress_count =3D 1,=20 interrupt_input_blocked =3D 0, byte_stack =3D 0x7ffffffe4540} #6 0x000000000064e9e7 in exec_byte_code (bytestr=3D9699425, vector=3D96994= 61, maxdepth=3D16, args_template=3D12726818, nargs=3D0, args=3D0x0) at byte= code.c:966 v1 =3D 9699590 count =3D 20 op =3D 141 vectorp =3D 0x940090 stack =3D {pc =3D 0xb6f0e2 "-\207", byte_string =3D 9699425, byte_s= tring_start =3D 0xb6f0c5 "\306\b!\020\307\b!\031\310\b\311\"\032\310\b\303\= "\033=CA=89\034\035\313\t!\210\314=CD=8D-\207", constants =3D 9699461,=20 next =3D 0x7ffffffe59a0} top =3D 0x7ffffffe44d0 result =3D 9465332 #7 0x00000000006033a1 in funcall_lambda (fun=3D9699365, nargs=3D0, arg_vec= tor=3D0x7ffffffe48f0) at eval.c:3233 val =3D 24501733 syms_left =3D 12726818 next =3D 12782626 lexenv =3D 12726818 count =3D 19 i =3D 0 optional =3D 1 rest =3D 0 #8 0x0000000000602ea8 in apply_lambda (fun=3D9699365, args=3D12726818) at = eval.c:3110 args_left =3D 12726818 i =3D 0 numargs =3D 0 arg_vector =3D 0x7ffffffe48f0 gcpro1 =3D {next =3D 0x7ffffffe49b0, var =3D 0x5fd422, nvars =3D 0} gcpro2 =3D {next =3D 0xc40d72, var =3D 0xc23222, nvars =3D 12726818} gcpro3 =3D {next =3D 0x7ffffffe49b0, var =3D 0xc23222, nvars =3D 94= 69820} tem =3D 24501733 sa_count =3D 19 sa_must_free =3D 0 #9 0x0000000000601524 in eval_sub (form=3D22141830) at eval.c:2395 fun =3D 9699365 val =3D 24501733 original_fun =3D 13582674 original_args =3D 12726818 funcar =3D 4307814658 backtrace =3D {next =3D 0x7ffffffe4d50, function =3D 0x7ffffffe4ab0= , args =3D 0x7ffffffe48f0, nargs =3D 0, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0xc23222, var =3D 0x7ffffffe4b80, nvars =3D 14= 0737488243344} gcpro2 =3D {next =3D 0x16e1ee0, var =3D 0xbfbf10, nvars =3D 83} gcpro3 =3D {next =3D 0xbfbf10, var =3D 0xc23252, nvars =3D 2} #10 0x00000000005fd4f3 in Fprogn (args=3D24304358) at eval.c:364 val =3D 24501733 gcpro1 =3D {next =3D 0x14ca9d2, var =3D 0xc23222, nvars =3D 0} #11 0x00000000005febe8 in Flet (args=3D24304310) at eval.c:1120 temps =3D 0x7ffffffe4b80 tem =3D 12726818 lexenv =3D 12726818 elt =3D 19830738 varlist =3D 12726818 count =3D 11 argnum =3D 8 gcpro1 =3D {next =3D 0xc23222, var =3D 0x172daa6, nvars =3D 1407374= 88243824} gcpro2 =3D {next =3D 0xc23222, var =3D 0x100000000, nvars =3D 8} sa_count =3D 11 sa_must_free =3D 0 #12 0x000000000060101e in eval_sub (form=3D24304294) at eval.c:2298 numargs =3D 48 args_left =3D 24304310 i =3D 23618246 maxargs =3D 12726818 argvals =3D {24304294, 22139094, 23038731, 140737488243936, 1407374= 88244112, 6298491, 22139094, 23618230} fun =3D 12098237 val =3D 2 original_fun =3D 12849106 original_args =3D 24304310 funcar =3D 12726818 backtrace =3D {next =3D 0x7ffffffe4ec0, function =3D 0x7ffffffe4d80= , args =3D 0x7ffffffe4d78, nargs =3D -1, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0x12c, var =3D 0x602d3a, nvars =3D 4} gcpro2 =3D {next =3D 0x7ffffffe4df0, var =3D 0x10, nvars =3D 140737= 488244144} gcpro3 =3D {next =3D 0xc860c2, var =3D 0x14caa02, nvars =3D 1407374= 88244112} #13 0x00000000006015f8 in eval_sub (form=3D23618198) at eval.c:2411 fun =3D 22139110 val =3D 21801474 original_fun =3D 21801378 original_args =3D 23618246 funcar =3D 12847362 backtrace =3D {next =3D 0x7ffffffe5160, function =3D 0x7ffffffe4ef0= , args =3D 0x7ffffffe4ee8, nargs =3D -1, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0x7ffffffe4ed0, var =3D 0x123b6a6, nvars =3D 1= 9886944} gcpro2 =3D {next =3D 0x7ffffffe4ff0, var =3D 0x60101e, nvars =3D 0} gcpro3 =3D {next =3D 0x10, var =3D 0x168cae1, nvars =3D 14073748825= 3344} #14 0x00000000005fd4f3 in Fprogn (args=3D23618294) at eval.c:364 val =3D 12726818 gcpro1 =3D {next =3D 0x7ffffffe4e40, var =3D 0xc23222, nvars =3D 23= 596737} #15 0x00000000005febe8 in Flet (args=3D23618182) at eval.c:1120 temps =3D 0x7ffffffe4fc0 tem =3D 23644897 lexenv =3D 12726818 elt =3D 23618134 varlist =3D 12726818 count =3D 10 argnum =3D 1 gcpro1 =3D {next =3D 0xc23222, var =3D 0xc1e0d6, nvars =3D 23487648} gcpro2 =3D {next =3D 0x7ffffffe5040, var =3D 0x5fd4f3, nvars =3D 1} sa_count =3D 10 sa_must_free =3D 0 #16 0x000000000060101e in eval_sub (form=3D23618118) at eval.c:2298 numargs =3D 8 args_left =3D 23618182 i =3D 12726818 maxargs =3D 12778914 argvals =3D {1040, 4294967298, 140737263341256, 4294967297, 1407374= 88241632, 20, 3, 3} fun =3D 12098237 val =3D 12726818 original_fun =3D 12849106 original_args =3D 23618182 funcar =3D 6097238 backtrace =3D {next =3D 0x7ffffffe5300, function =3D 0x7ffffffe5190= , args =3D 0x7ffffffe5188, nargs =3D -1, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0x7ffffffe5190, var =3D 0x5d, nvars =3D 45} gcpro2 =3D {next =3D 0x7ffffffe71a0, var =3D 0x0, nvars =3D 0} gcpro3 =3D {next =3D 0x17b3b00, var =3D 0x7ffffffe57d0, nvars =3D 1= 40737263341152} #17 0x00000000005fd4f3 in Fprogn (args=3D23618310) at eval.c:364 val =3D 12726818 gcpro1 =3D {next =3D 0xbfbe50, var =3D 0x1, nvars =3D 14170053} #18 0x000000000060333c in funcall_lambda (fun=3D23618326, nargs=3D1, arg_ve= ctor=3D0x7ffffffe53d8) at eval.c:3226 val =3D 6187332 syms_left =3D 12726818 next =3D 22878050 lexenv =3D 12726818 count =3D 8 i =3D 1 optional =3D 1 rest =3D 0 #19 0x0000000000602c3d in Ffuncall (nargs=3D2, args=3D0x7ffffffe53d0) at ev= al.c:3063 fun =3D 23618326 original_fun =3D 22815506 funcar =3D 12778914 numargs =3D 1 lisp_numargs =3D 12726818 val =3D 0 backtrace =3D {next =3D 0x7ffffffe5650, function =3D 0x7ffffffe53d0= , args =3D 0x7ffffffe53d8, nargs =3D 1, debug_on_exit =3D 0} internal_args =3D 0x7ffffffe53d8 i =3D 5650438 #20 0x00000000005fcc16 in Fcall_interactively (function=3D22815506, record_= flag=3D12726818, keys=3D12773141) at callint.c:852 val =3D 140737488246352 args =3D 0x7ffffffe53d0 visargs =3D 0x7ffffffe53b0 specs =3D 23644801 filter_specs =3D 23644801 teml =3D 3 up_event =3D 12726818 enable =3D 12726818 speccount =3D 6 next_event =3D 0 prefix_arg =3D 12726818 string =3D 0x7ffffffe53f0 "p" tem =3D 0x6b49cc "" varies =3D 0x7ffffffe5390 "" i =3D 2 nargs =3D 2 foo =3D 0 arg_from_tty =3D 0 gcpro1 =3D {next =3D 0x18, var =3D 0x16693d0, nvars =3D 14073748824= 6000} gcpro2 =3D {next =3D 0x1669588, var =3D 0xc2fda2, nvars =3D 0} gcpro3 =3D {next =3D 0x7ffffffe5d80, var =3D 0x9, nvars =3D 2} gcpro4 =3D {next =3D 0x7ffffffe54e0, var =3D 0x5e2ae8, nvars =3D 2} gcpro5 =3D {next =3D 0x7ffffffe54e0, var =3D 0x602c3d, nvars =3D 25= 6} key_count =3D 0 record_then_fail =3D 0 save_this_command =3D 12726818 save_last_command =3D 12726818 save_this_original_command =3D 12726818 save_real_this_command =3D 12726818 #21 0x00000000006029d0 in Ffuncall (nargs=3D4, args=3D0x7ffffffe56f0) at ev= al.c:3009 fun =3D 12097229 original_fun =3D 12867138 funcar =3D 15073441 numargs =3D 3 lisp_numargs =3D 140737488246704 val =3D 0 backtrace =3D {next =3D 0x7ffffffe5820, function =3D 0x7ffffffe56f0= , args =3D 0x7ffffffe56f8, nargs =3D 3, debug_on_exit =3D 0} internal_args =3D 0x7ffffffe56f8 i =3D 140737488253344 #22 0x00000000006021d6 in call3 (fn=3D12867138, arg1=3D22815506, arg2=3D127= 26818, arg3=3D12726818) at eval.c:2802 ret_ungc_val =3D 140737488246736 gcpro1 =3D {next =3D 0x7ffffffe5730, var =3D 0x1686316, nvars =3D 4} args =3D {12867138, 22815506, 12726818, 12726818} #23 0x0000000000576933 in Fcommand_execute (cmd=3D22815506, record_flag=3D1= 2726818, keys=3D12726818, special=3D12726818) at keyboard.c:10330 final =3D 23618326 tem =3D 12778914 prefixarg =3D 12726818 #24 0x0000000000602a03 in Ffuncall (nargs=3D2, args=3D0x7ffffffe5910) at ev= al.c:3013 fun =3D 9363453 original_fun =3D 12774274 funcar =3D 9955025 numargs =3D 1 lisp_numargs =3D 140737488246928 val =3D 12726866 backtrace =3D {next =3D 0x7ffffffe5d80, function =3D 0x7ffffffe5910= , args =3D 0x7ffffffe5918, nargs =3D 1, debug_on_exit =3D 0} internal_args =3D 0x7ffffffe57d0 i =3D 4 #25 0x000000000064dd88 in exec_byte_code (bytestr=3D9953465, vector=3D99535= 01, maxdepth=3D88, args_template=3D1028, nargs=3D1, args=3D0x7ffffffe5e10) = at bytecode.c:785 count =3D 4 op =3D 1 vectorp =3D 0x97e0e8 stack =3D { pc =3D 0xb5ae54 "\210\202\201\003\006\b \210\202\201\003\016A=E2= =9D=83V\001\331\026B\343\344\003\206P\001\n\211A\022@!!\210\202\201\003\016= A=E5=9D=83\220\001\346\347\003\206h\001\n\211A\022@!!\262\t\006\a\203\203\0= 01\006\a\006\t\006\tAB\241\210\006\aA\262\b\202\201\003\006\b\016CB\211\026= C\262\b\202\201\003\016A=E8=9D=83\270\001\347\002\206\241\001\n\211A\022@!\= 346\001!\351\001!\203\256\001\211\262\002\352\002\314\331#\266\003\202\201\= 003\016A=EB=9D=83\330\001\347\002\206\311\001\n\211A\022@!\346\001!\352\001= \314=D9=89$\266\003\202\201\003\016A=EC=9A=83\001\002\331\026B\001\206\353\= 001\n\211A\022@\262\t\006\b;\204\367\001\332\355!\210", ..., byte_string =3D 9953465, byte_string_start =3D 0xb5ad24 "\306 \= 210\b\203\021", constants =3D 9953501, next =3D 0x7ffffffe5ee0} top =3D 0x7ffffffe5910 result =3D 140737488253344 #26 0x00000000006030cb in funcall_lambda (fun=3D9953413, nargs=3D1, arg_vec= tor=3D0x7ffffffe5e08) at eval.c:3167 val =3D 16336112 syms_left =3D 1028 next =3D 5 lexenv =3D 12565392 count =3D 4 i =3D 12754864 optional =3D 0 rest =3D 15091217 #27 0x0000000000602b89 in Ffuncall (nargs=3D2, args=3D0x7ffffffe5e00) at ev= al.c:3051 fun =3D 9953413 original_fun =3D 13735682 funcar =3D 12889074 numargs =3D 1 lisp_numargs =3D 140737488253344 val =3D 18937910 backtrace =3D {next =3D 0x7ffffffe62c0, function =3D 0x7ffffffe5e00= , args =3D 0x7ffffffe5e08, nargs =3D 1, debug_on_exit =3D 0} internal_args =3D 0xa0 i =3D 6185953 #28 0x000000000064dd88 in exec_byte_code (bytestr=3D9929121, vector=3D99291= 57, maxdepth=3D72, args_template=3D0, nargs=3D0, args=3D0x7ffffffe6350) at = bytecode.c:785 count =3D 4 op =3D 1 vectorp =3D 0x9781d0 stack =3D {pc =3D 0xb5d7f8 "\210\016H\203\224\006\201", , byte_string =3D 9929121, byte_string_start =3D 0xb5d170 "\= 306 \020\307\021\n\023\307\024\310\311!\211\307=3D\204\060",=20 constants =3D 9929157, next =3D 0x7ffffffe63d0} top =3D 0x7ffffffe5e00 result =3D 64 #29 0x00000000006030cb in funcall_lambda (fun=3D9929069, nargs=3D0, arg_vec= tor=3D0x7ffffffe6350) at eval.c:3167 val =3D 5 syms_left =3D 0 next =3D 140737488250752 lexenv =3D 5 count =3D 4 i =3D 140737488249688 optional =3D 0 rest =3D 6156621 #30 0x0000000000602b89 in Ffuncall (nargs=3D1, args=3D0x7ffffffe6348) at ev= al.c:3051 fun =3D 9929069 original_fun =3D 13184834 funcar =3D 12760706 numargs =3D 0 lisp_numargs =3D 140737488250752 val =3D 12726818 backtrace =3D {next =3D 0x7ffffffe6910, function =3D 0x7ffffffe6348= , args =3D 0x7ffffffe6350, nargs =3D 0, debug_on_exit =3D 0} internal_args =3D 0x80 i =3D 6185953 #31 0x000000000064dd88 in exec_byte_code (bytestr=3D9923665, vector=3D99237= 01, maxdepth=3D32, args_template=3D0, nargs=3D0, args=3D0x7ffffffe6780) at = bytecode.c:785 count =3D 3 op =3D 0 vectorp =3D 0x976c80 stack =3D {pc =3D 0xb5e13d "\210)\210\346\347\350\"\210\351\317\352= \"\211;\203\240", byte_string =3D 9923665, byte_string_start =3D 0xb5e0b6 "= \b\203\b", constants =3D 9923701, next =3D 0x0} top =3D 0x7ffffffe6348 result =3D 140737488250848 #32 0x00000000006030cb in funcall_lambda (fun=3D9923613, nargs=3D0, arg_vec= tor=3D0x7ffffffe6780) at eval.c:3167 val =3D 140737353853576 syms_left =3D 0 next =3D 8227920807149371393 lexenv =3D 16 count =3D 3 i =3D 140737259718280 optional =3D 32767 rest =3D 2 #33 0x0000000000602ea8 in apply_lambda (fun=3D9923613, args=3D12726818) at = eval.c:3110 args_left =3D 12726818 i =3D 0 numargs =3D 0 arg_vector =3D 0x7ffffffe6780 gcpro1 =3D {next =3D 0x8, var =3D 0x7ffff26f1cc0, nvars =3D 0} gcpro2 =3D {next =3D 0xffffffffffffff00, var =3D 0x7, nvars =3D 140= 737488251280} gcpro3 =3D {next =3D 0x8, var =3D 0x7fffee437000, nvars =3D 888944} tem =3D 0 sa_count =3D 3 sa_must_free =3D 0 #34 0x0000000000601524 in eval_sub (form=3D13140662) at eval.c:2395 fun =3D 9923613 val =3D 140737488251672 original_fun =3D 13834530 args_left =3D 12726818 i =3D 0 numargs =3D 0 arg_vector =3D 0x7ffffffe6780 gcpro1 =3D {next =3D 0x8, var =3D 0x7ffff26f1cc0, nvars =3D 0} gcpro2 =3D {next =3D 0xffffffffffffff00, var =3D 0x7, nvars =3D 140= 737488251280} gcpro3 =3D {next =3D 0x8, var =3D 0x7fffee437000, nvars =3D 888944} tem =3D 0 sa_count =3D 3 sa_must_free =3D 0 #34 0x0000000000601524 in eval_sub (form=3D13140662) at eval.c:2395 fun =3D 9923613 val =3D 140737488251672 original_fun =3D 13834530 original_args =3D 12726818 funcar =3D 0 backtrace =3D {next =3D 0x0, function =3D 0x7ffffffe6940, args =3D = 0x7ffffffe6780, nargs =3D 0, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0x7fff00000017, var =3D 0x102a10a06, nvars =3D= 140737259669880} gcpro2 =3D {next =3D 0xa8428197, var =3D 0xc23222, nvars =3D 140737= 488251232} gcpro3 =3D {next =3D 0x10822fdb, var =3D 0x7ffffffe6930, nvars =3D = 140737353853264} #35 0x0000000000600cb3 in Feval (form=3D13140662, lexical=3D12726818) at ev= al.c:2204 count =3D 2 #36 0x0000000000563cad in top_level_2 () at keyboard.c:1169 No locals. #37 0x00000000005ff611 in internal_condition_case (bfun=3D0x563c90 , handlers=3D12779106, hfun=3D0x56386c ) at eval.c:1515 val =3D 5651631 c =3D {tag =3D 12726818, val =3D 12726818, next =3D 0x7ffffffe6bc0,= gcpro =3D 0x0, jmp =3D {{__jmpbuf =3D {0, -6975756009930909191, 4278368, 1= 40737488253344, 0, 0, -6975756009891063303, 6975756539251497465},=20 __mask_was_saved =3D 0, __saved_mask =3D {__val =3D {42949672= 95, 13595766, 1, 9336904, 0, 0, 0, 0, 140737351952882, 1, 0, 0, 14073725969= 7808, 0, 0, 140737488252112}}}}, backlist =3D 0x0,=20 handlerlist =3D 0x0, lisp_eval_depth =3D 0, pdlcount =3D 2, poll_= suppress_count =3D 1, interrupt_input_blocked =3D 0, byte_stack =3D 0x0} h =3D {handler =3D 12779106, var =3D 12726818, chosen_clause =3D 48= , tag =3D 0x7ffffffe6a50, next =3D 0x0} #38 0x0000000000563ce7 in top_level_1 (ignore=3D12726818) at keyboard.c:1177 No locals. #39 0x00000000005fef9b in internal_catch (tag=3D12774850, func=3D0x563caf <= top_level_1>, arg=3D12726818) at eval.c:1272 c =3D {tag =3D 12774850, val =3D 12726818, next =3D 0x0, gcpro =3D = 0x0, jmp =3D {{__jmpbuf =3D {0, -6975756010086098439, 4278368, 140737488253= 344, 0, 0, -6975756009903646215, 6975756540123650553},=20 __mask_was_saved =3D 0, __saved_mask =3D {__val =3D {6187332,= 100, 4294967296, 352, 30064771072, 12121664, 12754864, 344, 0, 14073748825= 2064, 12952912, 14, 0, 4278368, 140737488253344,=20 140737488252144}}}}, backlist =3D 0x0, handlerlist =3D 0x= 0, lisp_eval_depth =3D 0, pdlcount =3D 2, poll_suppress_count =3D 1, interr= upt_input_blocked =3D 0, byte_stack =3D 0x0} #40 0x0000000000563c0b in command_loop () at keyboard.c:1132 No locals. #41 0x00000000005633b0 in recursive_edit_1 () at keyboard.c:759 count =3D 1 val =3D 12726818 #42 0x0000000000563553 in Frecursive_edit () at keyboard.c:823 count =3D 0 buffer =3D 12726818 #43 0x00000000005615f0 in main (argc=3D1739, argv=3D0x7ffffffe71a8) at emac= s.c:1715 dummy =3D 4239669 stack_bottom_variable =3D 0 '\000' do_initial_setlocale =3D 1 skip_args =3D 1 rlim =3D {rlim_cur =3D 8720000, rlim_max =3D 18446744073709551615} no_loadup =3D 0 junk =3D 0x0 dname_arg =3D 0x0 ch_to_dir =3D 0x7ffff7fc8d38 "\200\344\377\367\377\177" From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 20 20:19:12 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 00:19:12 +0000 Received: from localhost ([127.0.0.1]:53272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsNPb-0003mz-Hc for submit@debbugs.gnu.org; Fri, 20 Jul 2012 20:19:12 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:60988) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsNPY-0003mr-Jz for 11984@debbugs.gnu.org; Fri, 20 Jul 2012 20:19:09 -0400 Received: by pbcwy7 with SMTP id wy7so6884133pbc.3 for <11984@debbugs.gnu.org>; Fri, 20 Jul 2012 17:12:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type:content-transfer-encoding; bh=YejU5iuPOq9ZpEwmMAtT9ia9jEFMiwzj7HuoTGC7wyw=; b=bBDGLukKBNZo7fEf0wFqLkAxhBUUTjytDEXeGC+E8+9bmbdoXvrXyMUA0a+X2EZPn4 hhpHnQUdzG1HRvYxamT7I9FCM62Ydx6XHdz4xw1MBSuFoqLCHFqGSzfdPhC5l5AFEx9y cTeb4k4BPIuItDGDkXD8vTVqiHIIngCkFX92uc3DE1OqOJG1w9144CY95yxFnV2wPW+H BLmoSr/jrkl3IssBIKGZVcxovKvMRoyuplhUjk7B4oKddiUOVtTiyyKGk/vEaceA9Xws LQythyQ+YlR/bkyky0nFNM/3jWcpYNDDj7sjteXqc7nuCO6TRyvA7BvnqMIuGt7nRDgS HTMw== Received: by 10.68.195.202 with SMTP id ig10mr17710252pbc.37.1342829568400; Fri, 20 Jul 2012 17:12:48 -0700 (PDT) Received: from marvin.home (2001-44b8-415c-cc01-a800-04ff-fe00-0a04.static.ipv6.internode.on.net. [2001:44b8:415c:cc01:a800:4ff:fe00:a04]) by mx.google.com with ESMTPS id mc3sm4897949pbc.12.2012.07.20.17.12.45 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 20 Jul 2012 17:12:47 -0700 (PDT) From: Russell Sim To: Chong Yidong Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> Date: Sat, 21 Jul 2012 10:12:42 +1000 In-Reply-To: (Russell Sim's message of "Sat, 21 Jul 2012 09:44:17 +1000") Message-ID: User-Agent: Gnus/5.130004 (Ma Gnus v0.4) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: Eli Zaretskii , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Russell Sim writes: > Chong Yidong writes: >> I committed a fix to the emacs-24 branch adding CHECK_LIVE_FRAME calls >> to those two functions (patch below). But for long-term safety, I think >> decode_any_windows had better signal an error if the window's frame >> isn't live. But I'm not sure if there's any subtle reliance in existing >> code on allowing window functions to be called for windows on dead >> frames---anyone know? > > Thanks for the champion effort, but I can still create the bug on > emacs-24 3770cb4 which includes Chongs patch. > > Here is a full backtrace, and another core > http://russellsim.org/emacs-24.3770cb4.core Oh crap, I just realised that you didn't add you full patch in the commit. I have re-compiled and included the extra in window-absolute-pixel-edges and delete-other-windows-internal changes. Unfortunately I still get the error. I here is an updated core file. http://russellsim.org/emacs-24.3770cb4-patch.core This may or may not help since I have no idea what extra would be included in a core file, line 2653 has the contents: hlinfo =3D MOUSE_HL_INFO (f); Thanks, Russell #0 0x000000000048c5cc in Fdelete_other_windows_internal (window=3D24470869= , root=3D24128309) at window.c:2653 w =3D 0x1756550 r =3D 0x1702b30 s =3D 0xc59212 f =3D 0xc390d0 sibling =3D 812 pwindow =3D 24470869 swindow =3D 13333010 delta =3D 12726818 startpos =3D 1 top =3D 4 new_top =3D 32767 resize_failed =3D -115344 hlinfo =3D 0xc23222 #1 0x0000000000602a69 in Ffuncall (nargs=3D3, args=3D0x7ffffffe3e30) at ev= al.c:3005 fun =3D 9345541 original_fun =3D 12950978 funcar =3D 103079215107 numargs =3D 2 lisp_numargs =3D 12782626 val =3D 12726818 backtrace =3D {next =3D 0x7ffffffe42e0, function =3D 0x7ffffffe3e30= , args =3D 0x7ffffffe3e38, nargs =3D 2, debug_on_exit =3D 0} internal_args =3D 0x7ffffffe3e38 i =3D 12726818 #2 0x000000000064de50 in exec_byte_code (bytestr=3D9699809, vector=3D96998= 61, maxdepth=3D20, args_template=3D12726818, nargs=3D0, args=3D0x0) at byte= code.c:785 count =3D 25 op =3D 2 vectorp =3D 0x940220 stack =3D {pc =3D 0xb6f179 "\210\323\r!\210\324\r!\210=D5=87", byte= _string =3D 9699809, byte_string_start =3D 0xb6f118 "\b\204U", constants = =3D 9699861, next =3D 0x7ffffffe4540} top =3D 0x7ffffffe3e30 result =3D 140737488241984 #3 0x000000000064d3bb in Fbyte_code (bytestr=3D9699809, vector=3D9699861, = maxdepth=3D20) at bytecode.c:423 No locals. #4 0x0000000000601427 in eval_sub (form=3D9699782) at eval.c:2356 numargs =3D 12 args_left =3D 12726818 i =3D 3 maxargs =3D 3 argvals =3D {9699809, 9699861, 20, 140737488241376, 140737488241384= , 1, 140737488241296, 5816836} fun =3D 12108133 val =3D 12816597 original_fun =3D 12866754 original_args =3D 9699798 funcar =3D 5815511 backtrace =3D {next =3D 0x7ffffffe4a80, function =3D 0x7ffffffe4310= , args =3D 0x7ffffffe4240, nargs =3D 3, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0x7ffffffe4310, var =3D 0x6021f4, nvars =3D 12= 864482} gcpro2 =3D {next =3D 0xc23222, var =3D 0xc23222, nvars =3D 12726818} gcpro3 =3D {next =3D 0x1, var =3D 0x7ffffffe4240, nvars =3D 3} #5 0x00000000005ff063 in internal_catch (tag=3D13220914, func=3D0x600d8d <= eval_sub>, arg=3D9699782) at eval.c:1272 c =3D {tag =3D 13220914, val =3D 12726818, next =3D 0x7ffffffe6a50,= gcpro =3D 0x0, jmp =3D {{__jmpbuf =3D {140737488242928, 156857950960181589= 3, 140737488242928, 140737488243584, 0, 0, 1568579509629078869,=20 -1568579215016735403}, __mask_was_saved =3D 0, __saved_mask= =3D {__val =3D {6302801, 140737488241872, 16, 12726818, 94489280514, 14073= 7488241872, 2, 140737488243328, 140737488241872, 140737488241880,=20 1, 24566916, 12769218, 12726818, 13453714, 1}}}}, backlis= t =3D 0x7ffffffe4a80, handlerlist =3D 0x7ffffffe6a20, lisp_eval_depth =3D 1= 0, pdlcount =3D 25, poll_suppress_count =3D 1,=20 interrupt_input_blocked =3D 0, byte_stack =3D 0x7ffffffe4540} #6 0x000000000064eaaf in exec_byte_code (bytestr=3D9699617, vector=3D96996= 53, maxdepth=3D16, args_template=3D12726818, nargs=3D0, args=3D0x0) at byte= code.c:966 v1 =3D 9699782 count =3D 20 op =3D 141 vectorp =3D 0x940150 stack =3D {pc =3D 0xb6f1a2 "-\207", byte_string =3D 9699617, byte_s= tring_start =3D 0xb6f185 "\306\b!\020\307\b!\031\310\b\311\"\032\310\b\303\= "\033=CA=89\034\035\313\t!\210\314=CD=8D-\207", constants =3D 9699653,=20 next =3D 0x7ffffffe59a0} top =3D 0x7ffffffe44d0 result =3D 9465524 #7 0x0000000000603469 in funcall_lambda (fun=3D9699557, nargs=3D0, arg_vec= tor=3D0x7ffffffe48f0) at eval.c:3233 val =3D 24566917 syms_left =3D 12726818 next =3D 12782626 lexenv =3D 12726818 count =3D 19 i =3D 0 optional =3D 1 rest =3D 0 #8 0x0000000000602f70 in apply_lambda (fun=3D9699557, args=3D12726818) at = eval.c:3110 args_left =3D 12726818 i =3D 0 numargs =3D 0 arg_vector =3D 0x7ffffffe48f0 gcpro1 =3D {next =3D 0x7ffffffe49b0, var =3D 0x5fd4ea, nvars =3D 0} gcpro2 =3D {next =3D 0xc40d72, var =3D 0xc23222, nvars =3D 12726818} gcpro3 =3D {next =3D 0x7ffffffe49b0, var =3D 0xc23222, nvars =3D 94= 70012} tem =3D 24566917 sa_count =3D 19 sa_must_free =3D 0 #9 0x00000000006015ec in eval_sub (form=3D22159046) at eval.c:2395 fun =3D 9699557 val =3D 24566917 original_fun =3D 13582674 original_args =3D 12726818 funcar =3D 4307814658 backtrace =3D {next =3D 0x7ffffffe4d50, function =3D 0x7ffffffe4ab0= , args =3D 0x7ffffffe48f0, nargs =3D 0, debug_on_exit =3D 0} gcpro1 =3D {next =3D 0xc23222, var =3D 0x7ffffffe4b80, nvars =3D 14= 0737488243344} gcpro2 =3D {next =3D 0x16f1e00, var =3D 0xbfbfd0, nvars =3D 1} gcpro3 =3D {next =3D 0xbfbfd0, var =3D 0xc23252, nvars =3D 2} #10 0x00000000005fd5bb in Fprogn (args=3D24433798) at eval.c:364 val =3D 24566917 gcpro1 =3D {next =3D 0x14bcf42, var =3D 0xc23222, nvars =3D 0} From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 02:24:38 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 06:24:38 +0000 Received: from localhost ([127.0.0.1]:53494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsT7G-0003VY-72 for submit@debbugs.gnu.org; Sat, 21 Jul 2012 02:24:38 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:47720) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsT7D-0003VQ-Ep for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 02:24:36 -0400 Received: by pbcwy7 with SMTP id wy7so7328929pbc.3 for <11984@debbugs.gnu.org>; Fri, 20 Jul 2012 23:18:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=2o3IX7hWOngdmZiQDQbv8QF6N5mtvAxf3Ag2gW5Ysao=; b=KuLC7QaVYiZazQvwFc3zB/l4R8UdPqMdUHK/RBpIRIMx0pfjU5lWa/rBtAZxGZEby9 CiVJX3XbGckT1LJUXU6I0OQYTry+q80PdgD743wVf4S85JODADXmTCsngLJ1MZAxh8g+ CcZr/LV2Z2/vqZ8ZBoZvQN0PVBoXF7afNuDIdnKSmjx0sApELcklEYGRlV34MBgsDh/1 FMsK+TqTDFtQl/l3WNanZU0dmm9WPpwygvsNMKF5gj3NHWmOsKV9IVIxwCpg3zG7i3YD dubbTb71WqReZHpmtqcLqhzQllTYtAh4Ppfqqfc3K03XQagrH2nhz032/PHyY9ycjdYs sgKg== Received: by 10.68.195.202 with SMTP id ig10mr19427499pbc.37.1342851493424; Fri, 20 Jul 2012 23:18:13 -0700 (PDT) Received: from ulysses ([155.69.186.151]) by mx.google.com with ESMTPS id nv6sm5453533pbc.42.2012.07.20.23.18.11 (version=SSLv3 cipher=OTHER); Fri, 20 Jul 2012 23:18:12 -0700 (PDT) From: Chong Yidong To: martin rudalics Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> Date: Sat, 21 Jul 2012 14:18:09 +0800 In-Reply-To: <5007E473.7080303@gmx.at> (martin rudalics's message of "Thu, 19 Jul 2012 12:41:55 +0200") Message-ID: <87fw8l7i3i.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: Eli Zaretskii , Russell Sim , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) martin rudalics writes: >> But for long-term safety, I think >> decode_any_windows had better signal an error if the window's frame >> isn't live. But I'm not sure if there's any subtle reliance in existing >> code on allowing window functions to be called for windows on dead >> frames---anyone know? > > Maybe the best way to find out is to install such a change? Done in the trunk. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 02:38:00 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 06:38:00 +0000 Received: from localhost ([127.0.0.1]:53518 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsTK9-0003oW-CC for submit@debbugs.gnu.org; Sat, 21 Jul 2012 02:37:59 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:41771) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsTK6-0003oM-7F for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 02:37:55 -0400 Received: by pbcwy7 with SMTP id wy7so7345321pbc.3 for <11984@debbugs.gnu.org>; Fri, 20 Jul 2012 23:31:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=ncXcgg0tXBwbE2HcP6Gdz5SRCR/nTfJXUWUr7ITtJZQ=; b=K1gbmzoqVOcRDqfyOGss6ITpgA7FNTm0NXA18F6NB8CspycqgQrzTkKS6du5xyy8N0 OdeOlFuCLvBDpW1y0sGpHkhsO7Xktnoyq3ssEhO3Edc+U91JSi8S1/a6hVUNtH3JHqCW juDc6zK26wgU1NWaJ1Qvao+jFDTge6TpyOmhm6BQxUBQlGxOAfrpOsf1/btG1EzllezK V0mBwWK9s02wFBqZIY5XvorvvuSm2jL3SrZFGZrW3Ra5ZXKUugD0dIG93Phwa2RNiEbS ddn9u/mf4CFLQtyD3xWkCgE3tNedWpV1QmyWXooDgap3s7F2u/yZ9NgTfbVfRJ0xBbOw z7bw== Received: by 10.66.74.3 with SMTP id p3mr16437284pav.49.1342852292543; Fri, 20 Jul 2012 23:31:32 -0700 (PDT) Received: from ulysses ([155.69.186.151]) by mx.google.com with ESMTPS id sy3sm5480584pbc.18.2012.07.20.23.31.30 (version=SSLv3 cipher=OTHER); Fri, 20 Jul 2012 23:31:31 -0700 (PDT) From: Chong Yidong To: Russell Sim Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> Date: Sat, 21 Jul 2012 14:31:28 +0800 In-Reply-To: (Russell Sim's message of "Sat, 21 Jul 2012 10:12:42 +1000") Message-ID: <87boj97hhb.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: Eli Zaretskii , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Russell Sim writes: > Oh crap, I just realised that you didn't add you full patch in the > commit. I have re-compiled and included the extra in > window-absolute-pixel-edges and delete-other-windows-internal changes. > Unfortunately I still get the error. > > I here is an updated core > file. http://russellsim.org/emacs-24.3770cb4-patch.core Hmm, I'm not sure the core file loaded properly for me. Can you trigger the crash with Emacs running in gdb? Do you get the following strange result from printing f->output_data? (gdb) p f->output_data $4 = { tty = 0xc2, x = 0xc2, w32 = 0xc2, ns = 0xc2, nothing = 194 } Also, please provide the step-by-step recipe that you are using to run the tests? If I can try to reproduce the crash myself, debugging will go faster. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 04:08:32 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 08:08:32 +0000 Received: from localhost ([127.0.0.1]:53663 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsUjo-0005q9-BF for submit@debbugs.gnu.org; Sat, 21 Jul 2012 04:08:32 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:63312) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsUjl-0005pz-6o for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 04:08:30 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0M7I003003L6FA00@a-mtaout20.012.net.il> for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 11:02:04 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M7I002263NFT690@a-mtaout20.012.net.il>; Sat, 21 Jul 2012 11:02:04 +0300 (IDT) Date: Sat, 21 Jul 2012 11:02:05 +0300 From: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window In-reply-to: X-012-Sender: halo1@inter.net.il To: Russell Sim Message-id: <83wr1x7daa.fsf@gnu.org> References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11984 Cc: cyd@gnu.org, 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Russell Sim > Cc: Eli Zaretskii , 11984@debbugs.gnu.org > Date: Sat, 21 Jul 2012 10:12:42 +1000 > > Oh crap, I just realised that you didn't add you full patch in the > commit. I have re-compiled and included the extra in > window-absolute-pixel-edges and delete-other-windows-internal changes. > Unfortunately I still get the error. Please show the "extra" you included. In particular, please show window.c around line 2653, plus/minus 20 lines. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 05:07:11 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 09:07:11 +0000 Received: from localhost ([127.0.0.1]:53837 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsVeX-0007CM-NU for submit@debbugs.gnu.org; Sat, 21 Jul 2012 05:07:10 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:39089) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsVeU-0007CE-8X for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 05:07:08 -0400 Received: by pbcwy7 with SMTP id wy7so7535539pbc.3 for <11984@debbugs.gnu.org>; Sat, 21 Jul 2012 02:00:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=Cws/wsTVtOFHVJv7AA4NG9TBFOVjlB4BwQdHaSWL79g=; b=Zv2HhE0Ert3vw2JKPCzcwhk57v8khetq6N5o22OTNvrqeIJCyMzy6tB8kGKpjRtW+o T2lpEoXP/uOIiBlYlibBbW3m4oBUXLgJvkzS166HpaKF19ZazlJ0dAXwgpzyQNpDvzCz shlqRXwxwFt+Xm7YgY3Vm/tjldGx5KYftziIfHbNj5hTr0FFWdjisTT1uKdAvqfDMLRM 5gg5z+2vbA2knxaZjosufb2kso+Q0v1MP9Nt7luMKIniEWWzP1l1cORTAvC0jGLGb/2u oVa7iOCX3Gt44ene8zEaht0BAawddh1gYjXkFcQU5qI0RONMIf7qXMXC2+Rg2rHsWv7W LgpQ== Received: by 10.68.241.131 with SMTP id wi3mr2119211pbc.76.1342861243324; Sat, 21 Jul 2012 02:00:43 -0700 (PDT) Received: from marvin.home (2001-44b8-415c-cc01-a800-04ff-fe00-0a04.static.ipv6.internode.on.net. [2001:44b8:415c:cc01:a800:4ff:fe00:a04]) by mx.google.com with ESMTPS id sh3sm5697748pbc.16.2012.07.21.02.00.40 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 21 Jul 2012 02:00:42 -0700 (PDT) From: Russell Sim To: Chong Yidong Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <87boj97hhb.fsf@gnu.org> Date: Sat, 21 Jul 2012 19:00:36 +1000 In-Reply-To: <87boj97hhb.fsf@gnu.org> (Chong Yidong's message of "Sat, 21 Jul 2012 14:31:28 +0800") Message-ID: User-Agent: Gnus/5.130004 (Ma Gnus v0.4) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: Eli Zaretskii , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Chong Yidong writes: > Russell Sim writes: > >> Oh crap, I just realised that you didn't add you full patch in the >> commit. I have re-compiled and included the extra in >> window-absolute-pixel-edges and delete-other-windows-internal changes. >> Unfortunately I still get the error. >> >> I here is an updated core >> file. http://russellsim.org/emacs-24.3770cb4-patch.core > > Hmm, I'm not sure the core file loaded properly for me. Can you trigger > the crash with Emacs running in gdb? Do you get the following strange > result from printing f->output_data? > > (gdb) p f->output_data > $4 = { > tty = 0xc2, > x = 0xc2, > w32 = 0xc2, > ns = 0xc2, > nothing = 194 > } (gdb) p f->output_data $1 = {tty = 0x0, x = 0x0, w32 = 0x0, ns = 0x0, nothing = 0} Be aware that I am running in batch mode. > Also, please provide the step-by-step recipe that you are using to run > the tests? If I can try to reproduce the crash myself, debugging will > go faster. I wish I could offer some simple recipe, I'll see if I can narrow it down to one test case, but because this is the test runner for the whole python-mode you need a heap of 3rd party Python stuff to get far enough along to cause the crash. If this is too painful, I can setup a VM with the appropriate environment for you to access. I'll be on IRC in the #emacs channel for a while and my handle is arrsim, or jabber at my email address. I have included the whole function that I am using, which is the emacs-24 branch + your extra CHECK_LIVE_FRAME chuncks. 2548: DEFUN ("delete-other-windows-internal", Fdelete_other_windows_internal, 2549: Sdelete_other_windows_internal, 0, 2, "", 2550: doc: /* Make WINDOW fill its frame. 2551: Only the frame WINDOW is on is affected. WINDOW may be any window and 2552: defaults to the selected one. 2553: 2554: Optional argument ROOT, if non-nil, must specify an internal window such 2555: that WINDOW is in its window subtree. If this is the case, replace ROOT 2556: by WINDOW and leave alone any windows not part of ROOT's subtree. 2557: 2558: When WINDOW is live try to reduce display jumps by keeping the text 2559: previously visible in WINDOW in the same place on the frame. Doing this 2560: depends on the value of (window-start WINDOW), so if calling this 2561: function in a program gives strange scrolling, make sure the 2562: window-start value is reasonable when this function is called. */) 2563: (Lisp_Object window, Lisp_Object root) 2564: { 2565: struct window *w, *r, *s; 2566: struct frame *f; 2567: Lisp_Object sibling, pwindow, swindow IF_LINT (= Qnil), delta; 2568: EMACS_INT startpos IF_LINT (= 0); 2569: int top IF_LINT (= 0), new_top, resize_failed; 2570: Mouse_HLInfo *hlinfo; 2571: 2572: w = decode_any_window (window); 2573: CHECK_LIVE_FRAME (w->frame); 2574: XSETWINDOW (window, w); 2575: f = XFRAME (w->frame); 2576: 2577: if (NILP (root)) 2578: /* ROOT is the frame's root window. */ 2579: { 2580: root = FRAME_ROOT_WINDOW (f); 2581: r = XWINDOW (root); 2582: } 2583: else 2584: /* ROOT must be an ancestor of WINDOW. */ 2585: { 2586: r = decode_any_window (root); 2587: CHECK_LIVE_FRAME (r->frame); 2588: pwindow = XWINDOW (window)->parent; 2589: while (!NILP (pwindow)) 2590: if (EQ (pwindow, root)) 2591: break; 2592: else 2593: pwindow = XWINDOW (pwindow)->parent; 2594: if (!EQ (pwindow, root)) 2595: error ("Specified root is not an ancestor of specified window"); 2596: } 2597: 2598: if (EQ (window, root)) 2599: /* A noop. */ 2600: return Qnil; 2601: /* I don't understand the "top > 0" part below. If we deal with a 2602: standalone minibuffer it would have been caught by the preceding 2603: test. */ 2604: else if (MINI_WINDOW_P (w)) /* && top > 0) */ 2605: error ("Can't expand minibuffer to full frame"); 2606: 2607: if (!NILP (w->buffer)) 2608: { 2609: startpos = marker_position (w->start); 2610: top = WINDOW_TOP_EDGE_LINE (w) 2611: - FRAME_TOP_MARGIN (XFRAME (WINDOW_FRAME (w))); 2612: /* Make sure WINDOW is the frame's selected window. */ 2613: if (!EQ (window, FRAME_SELECTED_WINDOW (f))) 2614: { 2615: if (EQ (selected_frame, w->frame)) 2616: Fselect_window (window, Qnil); 2617: else 2618: FRAME_SELECTED_WINDOW (f) = window; 2619: } 2620: } 2621: else 2622: { 2623: /* See if the frame's selected window is a part of the window 2624: subtree rooted at WINDOW, by finding all the selected window's 2625: parents and comparing each one with WINDOW. If it isn't we 2626: need a new selected window for this frame. */ 2627: swindow = FRAME_SELECTED_WINDOW (f); 2628: while (1) 2629: { 2630: pwindow = swindow; 2631: while (!NILP (pwindow) && !EQ (window, pwindow)) 2632: pwindow = XWINDOW (pwindow)->parent; 2633: 2634: if (EQ (window, pwindow)) 2635: /* If WINDOW is an ancestor of SWINDOW, then SWINDOW is ok 2636: as the new selected window. */ 2637: break; 2638: else 2639: /* Else try the previous window of SWINDOW. */ 2640: swindow = Fprevious_window (swindow, Qlambda, Qnil); 2641: } 2642: 2643: if (!EQ (swindow, FRAME_SELECTED_WINDOW (f))) 2644: { 2645: if (EQ (selected_frame, w->frame)) 2646: Fselect_window (swindow, Qnil); 2647: else 2648: FRAME_SELECTED_WINDOW (f) = swindow; 2649: } 2650: } 2651: 2652: BLOCK_INPUT; 2653: hlinfo = MOUSE_HL_INFO (f); 2654: /* We are going to free the glyph matrices of WINDOW, and with that 2655: we might lose any information about glyph rows that have some of 2656: their glyphs highlighted in mouse face. (These rows are marked 2657: with a non-zero mouse_face_p flag.) If WINDOW indeed has some 2658: glyphs highlighted in mouse face, signal to frame's up-to-date 2659: hook that mouse highlight was overwritten, so that it will 2660: arrange for redisplaying the highlight. */ 2661: if (EQ (hlinfo->mouse_face_window, window)) 2662: { 2663: hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1; 2664: hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1; 2665: hlinfo->mouse_face_window = Qnil; 2666: } 2667: free_window_matrices (r); 2668: 2669: windows_or_buffers_changed++; 2670: Vwindow_list = Qnil; 2671: FRAME_WINDOW_SIZES_CHANGED (f) = 1; 2672: resize_failed = 0; 2673: 2674: if (NILP (w->buffer)) 2675: { 2676: /* Resize child windows vertically. */ 2677: XSETINT (delta, XINT (r->total_lines) - XINT (w->total_lines)); 2678: w->top_line = r->top_line; 2679: resize_root_window (window, delta, Qnil, Qnil); 2680: if (window_resize_check (w, 0)) 2681: window_resize_apply (w, 0); 2682: else 2683: { 2684: resize_root_window (window, delta, Qnil, Qt); 2685: if (window_resize_check (w, 0)) 2686: window_resize_apply (w, 0); 2687: else 2688: resize_failed = 1; 2689: } 2690: 2691: /* Resize child windows horizontally. */ 2692: if (!resize_failed) 2693: { 2694: w->left_col = r->left_col; 2695: XSETINT (delta, XINT (r->total_cols) - XINT (w->total_cols)); 2696: w->left_col = r->left_col; 2697: resize_root_window (window, delta, Qt, Qnil); 2698: if (window_resize_check (w, 1)) 2699: window_resize_apply (w, 1); 2700: else 2701: { 2702: resize_root_window (window, delta, Qt, Qt); 2703: if (window_resize_check (w, 1)) 2704: window_resize_apply (w, 1); 2705: else 2706: resize_failed = 1; 2707: } 2708: } 2709: 2710: if (resize_failed) 2711: /* Play safe, if we still can ... */ 2712: { 2713: window = swindow; 2714: w = XWINDOW (window); 2715: } 2716: } 2717: 2718: /* Cleanly unlink WINDOW from window-tree. */ 2719: if (!NILP (w->prev)) 2720: /* Get SIBLING above (on the left of) WINDOW. */ 2721: { 2722: sibling = w->prev; 2723: s = XWINDOW (sibling); 2724: s->next = w->next; 2725: if (!NILP (s->next)) 2726: XWINDOW (s->next)->prev = sibling; 2727: } 2728: else 2729: /* Get SIBLING below (on the right of) WINDOW. */ 2730: { 2731: sibling = w->next; 2732: s = XWINDOW (sibling); 2733: s->prev = Qnil; 2734: if (!NILP (XWINDOW (w->parent)->vchild)) 2735: XWINDOW (w->parent)->vchild = sibling; 2736: else 2737: XWINDOW (w->parent)->hchild = sibling; 2738: } 2739: 2740: /* Delete ROOT and all child windows of ROOT. */ 2741: if (!NILP (r->vchild)) 2742: { 2743: delete_all_child_windows (r->vchild); 2744: r->vchild = Qnil; 2745: } 2746: else if (!NILP (r->hchild)) 2747: { 2748: delete_all_child_windows (r->hchild); 2749: r->hchild = Qnil; 2750: } 2751: 2752: replace_window (root, window, 1); 2753: 2754: /* This must become SWINDOW anyway ....... */ 2755: if (!NILP (w->buffer) && !resize_failed) 2756: { 2757: /* Try to minimize scrolling, by setting the window start to the 2758: point will cause the text at the old window start to be at the 2759: same place on the frame. But don't try to do this if the 2760: window start is outside the visible portion (as might happen 2761: when the display is not current, due to typeahead). */ 2762: new_top = WINDOW_TOP_EDGE_LINE (w) - FRAME_TOP_MARGIN (XFRAME (WINDOW_FRAME (w))); 2763: if (new_top != top 2764: && startpos >= BUF_BEGV (XBUFFER (w->buffer)) 2765: && startpos <= BUF_ZV (XBUFFER (w->buffer))) 2766: { 2767: struct position pos; 2768: struct buffer *obuf = current_buffer; 2769: 2770: Fset_buffer (w->buffer); 2771: /* This computation used to temporarily move point, but that 2772: can have unwanted side effects due to text properties. */ 2773: pos = *vmotion (startpos, -top, w); 2774: 2775: set_marker_both (w->start, w->buffer, pos.bufpos, pos.bytepos); 2776: w->window_end_valid = Qnil; 2777: w->start_at_line_beg = ((pos.bytepos == BEGV_BYTE 2778: || FETCH_BYTE (pos.bytepos - 1) == '\n') ? Qt 2779: : Qnil); 2780: /* We need to do this, so that the window-scroll-functions 2781: get called. */ 2782: w->optional_new_start = Qt; 2783: 2784: set_buffer_internal (obuf); 2785: } 2786: } 2787: 2788: adjust_glyphs (f); 2789: UNBLOCK_INPUT; 2790: 2791: run_window_configuration_change_hook (f); 2792: 2793: return Qnil; 2794: } From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 05:15:18 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 09:15:18 +0000 Received: from localhost ([127.0.0.1]:53860 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsVmP-0007Nd-Pk for submit@debbugs.gnu.org; Sat, 21 Jul 2012 05:15:18 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:36038) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsVmN-0007NV-1Z for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 05:15:16 -0400 Received: by pbcwy7 with SMTP id wy7so7546028pbc.3 for <11984@debbugs.gnu.org>; Sat, 21 Jul 2012 02:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=oltr1Ohcun4meOWV9uliVQ8HscPmOcb/BXTyXtJUexs=; b=K2JyN5kkjOcde1nQeMgH18gSUWu9aojWxhZyUeRLvhf5tq2T7Y6izHRUF4fnXAVhER Ud6qtkHiON1IfdLhwTGsQlEdrmlFH1mB5rbcTreRgkQLHY3g3Ld6Ozfdlj/zVWb18cDi Gv+Xf1kkQHNy2Z6azYLIO3DmKs2CfIQvbdbMpy4eOZgQYnv3Bh9v7euk8RO8VsYsNM9g fAUC+zHfN450qUIL2WnBru/0fVYz28PCsjKWVmoQWSOyc3WzyDBNlX63yVje13WhxWvd NZDX4aHaNDEcV7Fc3nXEZ+wxSLU6tFY/u2eN6BMl/LxEttnnZ0FCjT//XUBwm1SV2ug4 DoDQ== Received: by 10.66.80.34 with SMTP id o2mr17225339pax.36.1342861732596; Sat, 21 Jul 2012 02:08:52 -0700 (PDT) Received: from marvin.home (2001-44b8-415c-cc01-a800-04ff-fe00-0a04.static.ipv6.internode.on.net. [2001:44b8:415c:cc01:a800:4ff:fe00:a04]) by mx.google.com with ESMTPS id hf5sm5712920pbc.4.2012.07.21.02.08.49 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 21 Jul 2012 02:08:51 -0700 (PDT) From: Russell Sim To: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <83wr1x7daa.fsf@gnu.org> Date: Sat, 21 Jul 2012 19:08:47 +1000 In-Reply-To: <83wr1x7daa.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 21 Jul 2012 11:02:05 +0300") Message-ID: User-Agent: Gnus/5.130004 (Ma Gnus v0.4) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: cyd@gnu.org, 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Eli Zaretskii writes: >> From: Russell Sim >> Cc: Eli Zaretskii , 11984@debbugs.gnu.org >> Date: Sat, 21 Jul 2012 10:12:42 +1000 >> >> Oh crap, I just realised that you didn't add you full patch in the >> commit. I have re-compiled and included the extra in >> window-absolute-pixel-edges and delete-other-windows-internal changes. >> Unfortunately I still get the error. > > Please show the "extra" you included. In particular, please show > window.c around line 2653, plus/minus 20 lines. I have push the code I am running here. https://github.com/russell/emacs/tree/bug-11984 From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 05:39:07 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 09:39:07 +0000 Received: from localhost ([127.0.0.1]:53898 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsW9T-0007tY-1w for submit@debbugs.gnu.org; Sat, 21 Jul 2012 05:39:07 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:48331) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsW9Q-0007tO-MU for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 05:39:06 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M7I00A007J3WS00@a-mtaout22.012.net.il> for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 12:32:41 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M7I00A0Q7UHSE20@a-mtaout22.012.net.il>; Sat, 21 Jul 2012 12:32:41 +0300 (IDT) Date: Sat, 21 Jul 2012 12:32:43 +0300 From: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window In-reply-to: X-012-Sender: halo1@inter.net.il To: Russell Sim Message-id: <83pq7p7938.fsf@gnu.org> References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <87boj97hhb.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11984 Cc: cyd@gnu.org, 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Russell Sim > Cc: Eli Zaretskii , 11984@debbugs.gnu.org > Date: Sat, 21 Jul 2012 19:00:36 +1000 > > > Hmm, I'm not sure the core file loaded properly for me. Can you trigger > > the crash with Emacs running in gdb? Do you get the following strange > > result from printing f->output_data? > > > > (gdb) p f->output_data > > $4 = { > > tty = 0xc2, > > x = 0xc2, > > w32 = 0xc2, > > ns = 0xc2, > > nothing = 194 > > } > > (gdb) p f->output_data > $1 = {tty = 0x0, x = 0x0, w32 = 0x0, ns = 0x0, nothing = 0} This is a FRAME_INITIAL_P frame. > 2652: BLOCK_INPUT; > 2653: hlinfo = MOUSE_HL_INFO (f); > 2654: /* We are going to free the glyph matrices of WINDOW, and with that > 2655: we might lose any information about glyph rows that have some of > 2656: their glyphs highlighted in mouse face. (These rows are marked > 2657: with a non-zero mouse_face_p flag.) If WINDOW indeed has some > 2658: glyphs highlighted in mouse face, signal to frame's up-to-date > 2659: hook that mouse highlight was overwritten, so that it will > 2660: arrange for redisplaying the highlight. */ > 2661: if (EQ (hlinfo->mouse_face_window, window)) > 2662: { > 2663: hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1; > 2664: hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1; > 2665: hlinfo->mouse_face_window = Qnil; > 2666: } That's it your problem: you didn't include the changes below, which make sure mouse-highlight info is never accessed for 'initial' frame types. The changes below were only done on the trunk, they aren't in the emacs-24 branch. --- src/window.c 2012-06-01 03:41:03 +0000 +++ src/window.c 2012-06-16 07:18:44 +0000 @@ -2566,7 +2566,6 @@ window-start value is reasonable when th Lisp_Object sibling, pwindow, swindow IF_LINT (= Qnil), delta; ptrdiff_t startpos IF_LINT (= 0); int top IF_LINT (= 0), new_top, resize_failed; - Mouse_HLInfo *hlinfo; w = decode_any_window (window); XSETWINDOW (window, w); @@ -2647,19 +2646,23 @@ window-start value is reasonable when th } BLOCK_INPUT; - hlinfo = MOUSE_HL_INFO (f); - /* We are going to free the glyph matrices of WINDOW, and with that - we might lose any information about glyph rows that have some of - their glyphs highlighted in mouse face. (These rows are marked - with a non-zero mouse_face_p flag.) If WINDOW indeed has some - glyphs highlighted in mouse face, signal to frame's up-to-date - hook that mouse highlight was overwritten, so that it will - arrange for redisplaying the highlight. */ - if (EQ (hlinfo->mouse_face_window, window)) - { - hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1; - hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1; - hlinfo->mouse_face_window = Qnil; + if (!FRAME_INITIAL_P (f)) + { + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + + /* We are going to free the glyph matrices of WINDOW, and with + that we might lose any information about glyph rows that have + some of their glyphs highlighted in mouse face. (These rows + are marked with a non-zero mouse_face_p flag.) If WINDOW + indeed has some glyphs highlighted in mouse face, signal to + frame's up-to-date hook that mouse highlight was overwritten, + so that it will arrange for redisplaying the highlight. */ + if (EQ (hlinfo->mouse_face_window, window)) + { + hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1; + hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1; + hlinfo->mouse_face_window = Qnil; + } } free_window_matrices (r); @@ -3903,7 +3906,6 @@ Signal an error when WINDOW is the only && EQ (r->new_total, (horflag ? r->total_cols : r->total_lines))) /* We can delete WINDOW now. */ { - Mouse_HLInfo *hlinfo; /* Block input. */ BLOCK_INPUT; @@ -3911,9 +3913,13 @@ Signal an error when WINDOW is the only /* If this window is referred to by the dpyinfo's mouse highlight, invalidate that slot to be safe (Bug#9904). */ - hlinfo = MOUSE_HL_INFO (XFRAME (w->frame)); - if (EQ (hlinfo->mouse_face_window, window)) - hlinfo->mouse_face_window = Qnil; + if (!FRAME_INITIAL_P (f)) + { + Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); + + if (EQ (hlinfo->mouse_face_window, window)) + hlinfo->mouse_face_window = Qnil; + } windows_or_buffers_changed++; Vwindow_list = Qnil; From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 05:51:39 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 09:51:39 +0000 Received: from localhost ([127.0.0.1]:53929 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsWLa-0000Za-Px for submit@debbugs.gnu.org; Sat, 21 Jul 2012 05:51:39 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:41464) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsWLY-0000ZR-Fh for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 05:51:37 -0400 Received: by pbcwy7 with SMTP id wy7so7590886pbc.3 for <11984@debbugs.gnu.org>; Sat, 21 Jul 2012 02:45:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=rnk0t1V7KbtRcMaJgxz8BlRxQCJh+ZKstxfBy7/Bskk=; b=Tf/uU3Yaaq3n6vRrPF8v5YmBWFpp01gyRHRRdKCGKrLko9CuRBmw7WyWHXlQocl9bU xLphgcwUgD6YIPObIpwCI+yHNPvy+w2hZb5neVgg462GQ5M3WtyNQcK6ZfLIFqW0kDB+ zKcHL2xSN2bLycRrsZAlAdcPqLHGCP/Sxi6yIeyFiT+KgbLvwHntn6DwHKpHrWiFUzGy iXTKtXXy1owmU8Sx0SZnpN3lp4ghl7mnh883UKC8mbfnSIFTge7wqmKZVe3tJsNwGvDE txQmpUnANNyOiqBv0T+uCqykkJpaYGscQzf4ltXwGQiRJ0vZIoGgmXczsuVFg53Nc74B cFtw== Received: by 10.68.130.9 with SMTP id oa9mr20367571pbb.95.1342863914099; Sat, 21 Jul 2012 02:45:14 -0700 (PDT) Received: from marvin.home (2001-44b8-415c-cc01-a800-04ff-fe00-0a04.static.ipv6.internode.on.net. [2001:44b8:415c:cc01:a800:4ff:fe00:a04]) by mx.google.com with ESMTPS id oy8sm5751598pbc.52.2012.07.21.02.45.11 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 21 Jul 2012 02:45:13 -0700 (PDT) From: Russell Sim To: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <87boj97hhb.fsf@gnu.org> <83pq7p7938.fsf@gnu.org> Date: Sat, 21 Jul 2012 19:45:08 +1000 In-Reply-To: <83pq7p7938.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 21 Jul 2012 12:32:43 +0300") Message-ID: User-Agent: Gnus/5.130004 (Ma Gnus v0.4) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 11984 Cc: cyd@gnu.org, 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Eli Zaretskii writes: > That's it your problem: you didn't include the changes below, which > make sure mouse-highlight info is never accessed for 'initial' frame > types. The changes below were only done on the trunk, they aren't in > the emacs-24 branch. Worked like a charm. :) Thanks, Russell From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 07:09:29 2012 Received: (at 11984) by debbugs.gnu.org; 21 Jul 2012 11:09:29 +0000 Received: from localhost ([127.0.0.1]:54104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsXYq-0002P8-F3 for submit@debbugs.gnu.org; Sat, 21 Jul 2012 07:09:27 -0400 Received: from mailout-de.gmx.net ([213.165.64.22]:34203) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1SsXYn-0002Oz-LG for 11984@debbugs.gnu.org; Sat, 21 Jul 2012 07:09:22 -0400 Received: (qmail invoked by alias); 21 Jul 2012 11:02:58 -0000 Received: from 62-47-44-153.adsl.highway.telekom.at (EHLO [62.47.44.153]) [62.47.44.153] by mail.gmx.net (mp028) with SMTP; 21 Jul 2012 13:02:58 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX19rmfoQKWFrib8e5o6yh/ibn8lBpJtxAgXAqxz3Yo P5+9Y4RySAb4dx Message-ID: <500A8C7C.8000902@gmx.at> Date: Sat, 21 Jul 2012 13:03:24 +0200 From: martin rudalics MIME-Version: 1.0 To: Chong Yidong Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> In-Reply-To: <87fw8l7i3i.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11984 Cc: Eli Zaretskii , Russell Sim , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >>> But for long-term safety, I think >>> decode_any_windows had better signal an error if the window's frame >>> isn't live. But I'm not sure if there's any subtle reliance in existing >>> code on allowing window functions to be called for windows on dead >>> frames---anyone know? >> Maybe the best way to find out is to install such a change? > > Done in the trunk. I must admit that I never looked at the definition of decode_any_window. I always assumed that it _does_ check whether the window either has a buffer or is in a window tree. So I think behavior is still broken because a window can have been deleted while its frame is still alive. IMHO the right fix is to throw an error for if (NILP (w->buffer) && NILP (w->hchild) && NILP (w->vchild)) which means that some functions when called on dead windows (like `delete-window') will now throw an error. These will have to be caught on the Elisp level. martin From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 21 08:10:33 2012 Received: (at 11984-done) by debbugs.gnu.org; 21 Jul 2012 12:10:33 +0000 Received: from localhost ([127.0.0.1]:54243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsYW1-0004ae-LF for submit@debbugs.gnu.org; Sat, 21 Jul 2012 08:10:33 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:47191) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SsYVy-0004aV-Ka for 11984-done@debbugs.gnu.org; Sat, 21 Jul 2012 08:10:31 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M7I00C00ESF7K00@a-mtaout22.012.net.il> for 11984-done@debbugs.gnu.org; Sat, 21 Jul 2012 15:04:07 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M7I00BOOEUURFA0@a-mtaout22.012.net.il>; Sat, 21 Jul 2012 15:04:07 +0300 (IDT) Date: Sat, 21 Jul 2012 15:04:09 +0300 From: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window In-reply-to: X-012-Sender: halo1@inter.net.il To: Russell Sim Message-id: <83liid722u.fsf@gnu.org> References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <87boj97hhb.fsf@gnu.org> <83pq7p7938.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11984-done Cc: cyd@gnu.org, 11984-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Russell Sim > Cc: cyd@gnu.org, 11984@debbugs.gnu.org > Date: Sat, 21 Jul 2012 19:45:08 +1000 > > Eli Zaretskii writes: > > > That's it your problem: you didn't include the changes below, which > > make sure mouse-highlight info is never accessed for 'initial' frame > > types. The changes below were only done on the trunk, they aren't in > > the emacs-24 branch. > > Worked like a charm. :) Thanks, I'm closing this bug, then. From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 24 08:52:59 2012 Received: (at 11984) by debbugs.gnu.org; 24 Jul 2012 12:52:59 +0000 Received: from localhost ([127.0.0.1]:35195 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Stebi-0000yA-MY for submit@debbugs.gnu.org; Tue, 24 Jul 2012 08:52:59 -0400 Received: from mailout-de.gmx.net ([213.165.64.22]:46828) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1Stebe-0000xz-0E for 11984@debbugs.gnu.org; Tue, 24 Jul 2012 08:52:55 -0400 Received: (qmail invoked by alias); 24 Jul 2012 12:46:13 -0000 Received: from 62-47-32-76.adsl.highway.telekom.at (EHLO [62.47.32.76]) [62.47.32.76] by mail.gmx.net (mp020) with SMTP; 24 Jul 2012 14:46:13 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX18C5ZxBuM8COQ5w2tOj07De4y8L5TkMz6z46ItU18 PBUMIdl7EHF5WR Message-ID: <500E9936.5050104@gmx.at> Date: Tue, 24 Jul 2012 14:46:46 +0200 From: martin rudalics MIME-Version: 1.0 To: Chong Yidong Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> <500A8C7C.8000902@gmx.at> In-Reply-To: <500A8C7C.8000902@gmx.at> Content-Type: multipart/mixed; boundary="------------010305090809000707060200" X-Y-GMX-Trusted: 0 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11984 Cc: "eliz@gnu.org" , Russell Sim , 11984@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) This is a multi-part message in MIME format. --------------010305090809000707060200 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit > IMHO the right fix is to throw an error for > > if (NILP (w->buffer) && NILP (w->hchild) && NILP (w->vchild)) > > which means that some functions when called on dead windows (like > `delete-window') will now throw an error. These will have to be caught > on the Elisp level. I think `delete-window-internal' can keep its decode_any_window. I'm not sure about `window-buffer'. For the remainder, the attached patch should be applied IMO. Eli can you check whether this interferes with tooltip creation? martin --------------010305090809000707060200 Content-Type: text/plain; name="window.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="window.diff" === modified file 'src/lisp.h' --- src/lisp.h 2012-07-24 06:45:44 +0000 +++ src/lisp.h 2012-07-24 08:32:47 +0000 @@ -1732,6 +1732,13 @@ #define CHECK_LIVE_WINDOW(x) \ CHECK_TYPE (WINDOWP (x) && !NILP (XWINDOW (x)->buffer), Qwindow_live_p, x) +#define CHECK_VALID_WINDOW(x) \ + CHECK_TYPE (WINDOWP (x) \ + && (!NILP (XWINDOW (x)->buffer) \ + || !NILP (XWINDOW (x)->vchild) \ + || !NILP (XWINDOW (x)->hchild)), \ + Qwindow_valid_p, x) + #define CHECK_PROCESS(x) \ CHECK_TYPE (PROCESSP (x), Qprocessp, x) === modified file 'src/window.c' --- src/window.c 2012-07-23 16:57:20 +0000 +++ src/window.c 2012-07-24 10:33:45 +0000 @@ -51,7 +51,7 @@ #include "nsterm.h" #endif -Lisp_Object Qwindowp, Qwindow_live_p; +Lisp_Object Qwindowp, Qwindow_live_p, Qwindow_valid_p; static Lisp_Object Qwindow_configuration_p, Qrecord_window_buffer; static Lisp_Object Qwindow_deletable_p, Qdelete_window, Qdisplay_buffer; static Lisp_Object Qreplace_buffer_in_windows, Qget_mru_window; @@ -156,6 +156,19 @@ return w; } +static struct window * +decode_valid_window (register Lisp_Object window) +{ + struct window *w; + + if (NILP (window)) + return XWINDOW (selected_window); + + CHECK_VALID_WINDOW (window); + w = XWINDOW (window); + return w; +} + DEFUN ("windowp", Fwindowp, Swindowp, 1, 1, 0, doc: /* Return t if OBJECT is a window and nil otherwise. */) (Lisp_Object object) @@ -178,7 +191,7 @@ If WINDOW is omitted or nil, it defaults to the selected window. */) (Lisp_Object window) { - return decode_any_window (window)->frame; + return decode_valid_window (window)->frame; } DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0, @@ -193,7 +206,10 @@ if (NILP (frame_or_window)) window = SELECTED_FRAME ()->root_window; else if (WINDOWP (frame_or_window)) - window = XFRAME (WINDOW_FRAME (XWINDOW (frame_or_window)))->root_window; + { + CHECK_VALID_WINDOW (frame_or_window); + window = XFRAME (XWINDOW (frame_or_window)->frame)->root_window; + } else { CHECK_LIVE_FRAME (frame_or_window); @@ -220,7 +236,7 @@ If WINDOW is omitted or nil, it defaults to the selected window. */) (Lisp_Object window) { - return MINI_WINDOW_P (decode_any_window (window)) ? Qt : Qnil; + return MINI_WINDOW_P (decode_valid_window (window)) ? Qt : Qnil; } /* Don't move this to window.el - this must be a safe routine. */ @@ -427,7 +443,7 @@ Return nil for a window with no parent (e.g. a root window). */) (Lisp_Object window) { - return decode_any_window (window)->parent; + return decode_valid_window (window)->parent; } DEFUN ("window-top-child", Fwindow_top_child, Swindow_top_child, 1, 1, 0, @@ -438,7 +454,7 @@ (Lisp_Object window) { CHECK_WINDOW (window); - return decode_any_window (window)->vchild; + return decode_valid_window (window)->vchild; } DEFUN ("window-left-child", Fwindow_left_child, Swindow_left_child, 1, 1, 0, @@ -449,7 +465,7 @@ (Lisp_Object window) { CHECK_WINDOW (window); - return decode_any_window (window)->hchild; + return decode_valid_window (window)->hchild; } DEFUN ("window-next-sibling", Fwindow_next_sibling, Swindow_next_sibling, 0, 1, 0, @@ -458,7 +474,7 @@ Return nil if WINDOW has no next sibling. */) (Lisp_Object window) { - return decode_any_window (window)->next; + return decode_valid_window (window)->next; } DEFUN ("window-prev-sibling", Fwindow_prev_sibling, Swindow_prev_sibling, 0, 1, 0, @@ -467,7 +483,7 @@ Return nil if WINDOW has no previous sibling. */) (Lisp_Object window) { - return decode_any_window (window)->prev; + return decode_valid_window (window)->prev; } DEFUN ("window-combination-limit", Fwindow_combination_limit, Swindow_combination_limit, 1, 1, 0, @@ -477,7 +493,7 @@ WINDOW are never \(re-)combined with WINDOW's siblings. */) (Lisp_Object window) { - return decode_any_window (window)->combination_limit; + return decode_valid_window (window)->combination_limit; } DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_window_combination_limit, 2, 2, 0, @@ -488,7 +504,7 @@ for future use. */) (Lisp_Object window, Lisp_Object limit) { - register struct window *w = decode_any_window (window); + register struct window *w = decode_valid_window (window); w->combination_limit = limit; return w->combination_limit; } @@ -516,7 +532,7 @@ integer multiple of the default character height. */) (Lisp_Object window) { - return decode_any_window (window)->total_lines; + return decode_valid_window (window)->total_lines; } DEFUN ("window-total-width", Fwindow_total_width, Swindow_total_width, 0, 1, 0, @@ -531,7 +547,7 @@ integer multiple of the default character width. */) (Lisp_Object window) { - return decode_any_window (window)->total_cols; + return decode_valid_window (window)->total_cols; } DEFUN ("window-new-total", Fwindow_new_total, Swindow_new_total, 0, 1, 0, @@ -539,7 +555,7 @@ If WINDOW is omitted or nil, it defaults to the selected window. */) (Lisp_Object window) { - return decode_any_window (window)->new_total; + return decode_valid_window (window)->new_total; } DEFUN ("window-normal-size", Fwindow_normal_size, Swindow_normal_size, 0, 2, 0, @@ -549,9 +565,9 @@ (Lisp_Object window, Lisp_Object horizontal) { if (NILP (horizontal)) - return decode_any_window (window)->normal_lines; + return decode_valid_window (window)->normal_lines; else - return decode_any_window (window)->normal_cols; + return decode_valid_window (window)->normal_cols; } DEFUN ("window-new-normal", Fwindow_new_normal, Swindow_new_normal, 0, 1, 0, @@ -559,7 +575,7 @@ If WINDOW is omitted or nil, it defaults to the selected window. */) (Lisp_Object window) { - return decode_any_window (window)->new_normal; + return decode_valid_window (window)->new_normal; } DEFUN ("window-left-column", Fwindow_left_column, Swindow_left_column, 0, 1, 0, @@ -571,7 +587,7 @@ If WINDOW is omitted or nil, it defaults to the selected window. */) (Lisp_Object window) { - return decode_any_window (window)->left_col; + return decode_valid_window (window)->left_col; } DEFUN ("window-top-line", Fwindow_top_line, Swindow_top_line, 0, 1, 0, @@ -583,7 +599,7 @@ If WINDOW is omitted or nil, it defaults to the selected window. */) (Lisp_Object window) { - return decode_any_window (window)->top_line; + return decode_valid_window (window)->top_line; } /* Return the number of lines of W's body. Don't count any mode or @@ -751,7 +767,7 @@ just the text area, use `window-inside-edges'. */) (Lisp_Object window) { - register struct window *w = decode_any_window (window); + register struct window *w = decode_valid_window (window); return Fcons (make_number (WINDOW_LEFT_EDGE_COL (w)), Fcons (make_number (WINDOW_TOP_EDGE_LINE (w)), @@ -772,7 +788,7 @@ of just the text area, use `window-inside-pixel-edges'. */) (Lisp_Object window) { - register struct window *w = decode_any_window (window); + register struct window *w = decode_valid_window (window); return Fcons (make_number (WINDOW_LEFT_EDGE_X (w)), Fcons (make_number (WINDOW_TOP_EDGE_Y (w)), @@ -816,7 +832,7 @@ of just the text area, use `window-inside-absolute-pixel-edges'. */) (Lisp_Object window) { - register struct window *w = decode_any_window (window); + register struct window *w = decode_valid_window (window); int add_x, add_y; calc_absolute_offset (w, &add_x, &add_y); @@ -1700,7 +1716,7 @@ elements of the form (PARAMETER . VALUE). */) (Lisp_Object window) { - return Fcopy_alist (decode_any_window (window)->window_parameters); + return Fcopy_alist (decode_valid_window (window)->window_parameters); } DEFUN ("window-parameter", Fwindow_parameter, Swindow_parameter, @@ -1711,7 +1727,7 @@ { Lisp_Object result; - result = Fassq (parameter, decode_any_window (window)->window_parameters); + result = Fassq (parameter, decode_valid_window (window)->window_parameters); return CDR_SAFE (result); } @@ -1721,7 +1737,7 @@ WINDOW defaults to the selected window. Return VALUE. */) (Lisp_Object window, Lisp_Object parameter, Lisp_Object value) { - register struct window *w = decode_any_window (window); + register struct window *w = decode_valid_window (window); Lisp_Object old_alist_elt; old_alist_elt = Fassq (parameter, w->window_parameters); @@ -2585,7 +2601,7 @@ ptrdiff_t startpos IF_LINT (= 0); int top IF_LINT (= 0), new_top, resize_failed; - w = decode_any_window (window); + w = decode_valid_window (window); XSETWINDOW (window, w); f = XFRAME (w->frame); @@ -2598,7 +2614,7 @@ else /* ROOT must be an ancestor of WINDOW. */ { - r = decode_any_window (root); + r = decode_valid_window (root); pwindow = XWINDOW (window)->parent; while (!NILP (pwindow)) if (EQ (pwindow, root)) @@ -3325,7 +3341,7 @@ Note: This function does not operate on any child windows of WINDOW. */) (Lisp_Object window, Lisp_Object size, Lisp_Object add) { - struct window *w = decode_any_window (window); + struct window *w = decode_valid_window (window); CHECK_NUMBER (size); if (NILP (add)) @@ -3343,7 +3359,7 @@ Note: This function does not operate on any child windows of WINDOW. */) (Lisp_Object window, Lisp_Object size) { - struct window *w = decode_any_window (window); + struct window *w = decode_valid_window (window); w->new_normal = size; return w->new_normal; @@ -6491,6 +6507,7 @@ DEFSYM (Qwindowp, "windowp"); DEFSYM (Qwindow_configuration_p, "window-configuration-p"); DEFSYM (Qwindow_live_p, "window-live-p"); + DEFSYM (Qwindow_valid_p, "window-valid-p"); DEFSYM (Qwindow_deletable_p, "window-deletable-p"); DEFSYM (Qdelete_window, "delete-window"); DEFSYM (Qwindow_resize_root_window, "window--resize-root-window"); --------------010305090809000707060200-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 24 12:43:38 2012 Received: (at 11984) by debbugs.gnu.org; 24 Jul 2012 16:43:38 +0000 Received: from localhost ([127.0.0.1]:36461 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1StiCv-0007GA-Qv for submit@debbugs.gnu.org; Tue, 24 Jul 2012 12:43:38 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:47052) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1StiCs-0007G0-CA for 11984@debbugs.gnu.org; Tue, 24 Jul 2012 12:43:35 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0M7O00900BEL1F00@a-mtaout20.012.net.il> for 11984@debbugs.gnu.org; Tue, 24 Jul 2012 19:36:52 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M7O008TUBHEXA20@a-mtaout20.012.net.il>; Tue, 24 Jul 2012 19:36:51 +0300 (IDT) Date: Tue, 24 Jul 2012 19:36:51 +0300 From: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window In-reply-to: <500E9936.5050104@gmx.at> X-012-Sender: halo1@inter.net.il To: martin rudalics Message-id: <83pq7lktek.fsf@gnu.org> References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> <500A8C7C.8000902@gmx.at> <500E9936.5050104@gmx.at> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11984 Cc: 11984@debbugs.gnu.org, cyd@gnu.org, russell.sim@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > Date: Tue, 24 Jul 2012 14:46:46 +0200 > From: martin rudalics > CC: Russell Sim , 11984@debbugs.gnu.org, > "eliz@gnu.org" > > I think `delete-window-internal' can keep its decode_any_window. I'm > not sure about `window-buffer'. For the remainder, the attached patch > should be applied IMO. Eli can you check whether this interferes with > tooltip creation? If you built Emacs with the change, and tooltips work for you, then I see no reason why they won't for me. From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 25 03:21:51 2012 Received: (at 11984) by debbugs.gnu.org; 25 Jul 2012 07:21:51 +0000 Received: from localhost ([127.0.0.1]:38203 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Stvun-0002Ye-KG for submit@debbugs.gnu.org; Wed, 25 Jul 2012 03:21:51 -0400 Received: from mailout-de.gmx.net ([213.165.64.23]:59215) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1Stvul-0002YX-Un for 11984@debbugs.gnu.org; Wed, 25 Jul 2012 03:21:49 -0400 Received: (qmail invoked by alias); 25 Jul 2012 07:15:03 -0000 Received: from 62-47-42-102.adsl.highway.telekom.at (EHLO [62.47.42.102]) [62.47.42.102] by mail.gmx.net (mp035) with SMTP; 25 Jul 2012 09:15:03 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1/u+TNogobu3cvz/bBXwTYJ1FR1Q3gR2FOAdD/+oq DbK9q5uARnbeB5 Message-ID: <500F9CF7.7000900@gmx.at> Date: Wed, 25 Jul 2012 09:15:03 +0200 From: martin rudalics MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> <500A8C7C.8000902@gmx.at> <500E9936.5050104@gmx.at> <83pq7lktek.fsf@gnu.org> In-Reply-To: <83pq7lktek.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11984 Cc: 11984@debbugs.gnu.org, cyd@gnu.org, russell.sim@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > If you built Emacs with the change, and tooltips work for you, How do I test it? Is evaluating (x-show-tip "???") enough? > then I > see no reason why they won't for me. Because tooltip frames appear fragile. x_create_tip_frame uses Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); while make_frame has /* Use set_window_buffer, not Fset_window_buffer, and don't let hooks be run by it. The reason is that the whole frame/window arrangement is not yet fully initialized at this point. Windows don't have the right size, glyph matrices aren't initialized etc. Running Lisp functions at this point surely ends in a SEGV. */ set_window_buffer (root_window, buf, 0, 0); Wouldn't the fact that the frame has not been set up completely when assigning a buffer to its root window suggest that Fset_window_buffer should not be used here either? martin From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 25 11:34:48 2012 Received: (at 11984) by debbugs.gnu.org; 25 Jul 2012 15:34:48 +0000 Received: from localhost ([127.0.0.1]:39207 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Su3bs-00077q-Aq for submit@debbugs.gnu.org; Wed, 25 Jul 2012 11:34:48 -0400 Received: from mtaout20.012.net.il ([80.179.55.166]:55051) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Su3bq-00077i-N9 for 11984@debbugs.gnu.org; Wed, 25 Jul 2012 11:34:47 -0400 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0M7Q0000026RC800@a-mtaout20.012.net.il> for 11984@debbugs.gnu.org; Wed, 25 Jul 2012 18:27:29 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M7Q0007P2XPBE40@a-mtaout20.012.net.il>; Wed, 25 Jul 2012 18:27:25 +0300 (IDT) Date: Wed, 25 Jul 2012 18:27:27 +0300 From: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window In-reply-to: <500F9CF7.7000900@gmx.at> X-012-Sender: halo1@inter.net.il To: martin rudalics Message-id: <83d33jlv34.fsf@gnu.org> References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> <500A8C7C.8000902@gmx.at> <500E9936.5050104@gmx.at> <83pq7lktek.fsf@gnu.org> <500F9CF7.7000900@gmx.at> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11984 Cc: 11984@debbugs.gnu.org, cyd@gnu.org, russell.sim@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > Date: Wed, 25 Jul 2012 09:15:03 +0200 > From: martin rudalics > CC: cyd@gnu.org, russell.sim@gmail.com, 11984@debbugs.gnu.org > > > If you built Emacs with the change, and tooltips work for you, > > How do I test it? Is evaluating > > (x-show-tip "???") > > enough? Probably, but I find it easier to move the mouse pointer over some of the mouse-sensitive areas of the display (tool bar, menu items, mode line), each time waiting for the tooltip to pop up and then pop down after a few seconds. > Because tooltip frames appear fragile. x_create_tip_frame uses > > Fset_window_buffer (FRAME_ROOT_WINDOW (f), buffer, Qnil); > > while make_frame has > > /* Use set_window_buffer, not Fset_window_buffer, and don't let > hooks be run by it. The reason is that the whole frame/window > arrangement is not yet fully initialized at this point. Windows > don't have the right size, glyph matrices aren't initialized > etc. Running Lisp functions at this point surely ends in a > SEGV. */ > set_window_buffer (root_window, buf, 0, 0); > > Wouldn't the fact that the frame has not been set up completely when > assigning a buffer to its root window suggest that Fset_window_buffer > should not be used here either? I know almost nothing about these intimate details. Exactly what is it that makes running the hooks safe, and when does it happen during frame creation, is not documented anywhere, AFAICS. So feel free to replace the call to Fset_window_buffer with set_window_buffer, if you think that's more appropriate. From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 26 05:50:30 2012 Received: (at 11984) by debbugs.gnu.org; 26 Jul 2012 09:50:30 +0000 Received: from localhost ([127.0.0.1]:40349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SuKiE-0006Uk-F5 for submit@debbugs.gnu.org; Thu, 26 Jul 2012 05:50:30 -0400 Received: from mailout-de.gmx.net ([213.165.64.23]:43064) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1SuKiB-0006Uc-Cf for 11984@debbugs.gnu.org; Thu, 26 Jul 2012 05:50:28 -0400 Received: (qmail invoked by alias); 26 Jul 2012 09:43:36 -0000 Received: from 62-47-53-226.adsl.highway.telekom.at (EHLO [62.47.53.226]) [62.47.53.226] by mail.gmx.net (mp001) with SMTP; 26 Jul 2012 11:43:36 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX1/uR4sDxz/uO3lWLAEj6D9r1E9YoHlzp+ZDNoAZnr IFoT5QJj4+3qxT Message-ID: <50111151.8020103@gmx.at> Date: Thu, 26 Jul 2012 11:43:45 +0200 From: martin rudalics MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> <500A8C7C.8000902@gmx.at> <500E9936.5050104@gmx.at> <83pq7lktek.fsf@gnu.org> <500F9CF7.7000900@gmx.at> <83d33jlv34.fsf@gnu.org> In-Reply-To: <83d33jlv34.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11984 Cc: 11984@debbugs.gnu.org, cyd@gnu.org, russell.sim@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > Probably, but I find it easier to move the mouse pointer over some of > the mouse-sensitive areas of the display (tool bar, menu items, mode > line), each time waiting for the tooltip to pop up and then pop down > after a few seconds. OK. I asked because in your report you didn't give a detailed scenario for how to reproduce the crash. > So feel free to replace the call to Fset_window_buffer with > set_window_buffer, if you think that's more appropriate. I intend to replace all instances wherever I find them in C code. Since set_window_buffer does run_window_configuration_change_hook anyway and IIUC we don't forbid that, the change won't fix much of the dilemma that we run Lisp code on unfinished frames. But Fset_window_buffer's extra work is only wasted for minibuffers. martin From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 26 10:05:32 2012 Received: (at 11984) by debbugs.gnu.org; 26 Jul 2012 14:05:32 +0000 Received: from localhost ([127.0.0.1]:41028 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SuOh1-0004g3-HW for submit@debbugs.gnu.org; Thu, 26 Jul 2012 10:05:32 -0400 Received: from mailout-de.gmx.net ([213.165.64.23]:58308) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1SuOgz-0004fw-GK for 11984@debbugs.gnu.org; Thu, 26 Jul 2012 10:05:30 -0400 Received: (qmail invoked by alias); 26 Jul 2012 13:58:37 -0000 Received: from 62-47-63-27.adsl.highway.telekom.at (EHLO [62.47.63.27]) [62.47.63.27] by mail.gmx.net (mp072) with SMTP; 26 Jul 2012 15:58:37 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX18uI14eEC4uF2MuInngLW+hdqXDsJpueRHdSJnETl Tfq2Yqo6b5wbEs Message-ID: <50114D13.7090309@gmx.at> Date: Thu, 26 Jul 2012 15:58:43 +0200 From: martin rudalics MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> <500A8C7C.8000902@gmx.at> <500E9936.5050104@gmx.at> <83pq7lktek.fsf@gnu.org> <500F9CF7.7000900@gmx.at> <83d33jlv34.fsf@gnu.org> <50111151.8020103@gmx.at> In-Reply-To: <50111151.8020103@gmx.at> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11984 Cc: cyd@gnu.org, 11984@debbugs.gnu.org, russell.sim@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > I intend to replace all instances wherever I find them in C code. Since > set_window_buffer does run_window_configuration_change_hook anyway and > IIUC we don't forbid that, At least this remark is incorrect. All Fset_window_buffer calls I found forbid to run hooks. > the change won't fix much of the dilemma that > we run Lisp code on unfinished frames. martin From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 12 22:02:42 2012 Received: (at control) by debbugs.gnu.org; 13 Aug 2012 02:02:42 +0000 Received: from localhost ([127.0.0.1]:52197 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0jzO-0003Xp-BX for submit@debbugs.gnu.org; Sun, 12 Aug 2012 22:02:42 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:40892) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0jzM-0003Xh-NG for control@debbugs.gnu.org; Sun, 12 Aug 2012 22:02:40 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1T0jr9-0005ZV-3H for control@debbugs.gnu.org; Sun, 12 Aug 2012 21:54:11 -0400 Date: Sun, 12 Aug 2012 21:54:11 -0400 Message-Id: Subject: control message for bug 12175 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) forcemerge 11984 12175 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 14 05:17:40 2012 Received: (at 11984) by debbugs.gnu.org; 14 Aug 2012 09:17:40 +0000 Received: from localhost ([127.0.0.1]:55126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T1DFs-0004mL-BU for submit@debbugs.gnu.org; Tue, 14 Aug 2012 05:17:40 -0400 Received: from mailout-de.gmx.net ([213.165.64.23]:38604) by debbugs.gnu.org with smtp (Exim 4.72) (envelope-from ) id 1T1DFp-0004mD-Q5 for 11984@debbugs.gnu.org; Tue, 14 Aug 2012 05:17:39 -0400 Received: (qmail invoked by alias); 14 Aug 2012 09:08:59 -0000 Received: from 62-47-49-255.adsl.highway.telekom.at (EHLO [62.47.49.255]) [62.47.49.255] by mail.gmx.net (mp029) with SMTP; 14 Aug 2012 11:08:59 +0200 X-Authenticated: #14592706 X-Provags-ID: V01U2FsdGVkX18udXkcxg0uUV4BtTD8xvvAhP/D4VV5BExW4YQOuk u5r3POPxqAANh/ Message-ID: <502A15B4.4040607@gmx.at> Date: Tue, 14 Aug 2012 11:09:08 +0200 From: martin rudalics MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#11984: 24.1; segfault while deleting a window References: <83r4s88n7n.fsf@gnu.org> <87txx47724.fsf@gnu.org> <5007E473.7080303@gmx.at> <87fw8l7i3i.fsf@gnu.org> <500A8C7C.8000902@gmx.at> <500E9936.5050104@gmx.at> <83pq7lktek.fsf@gnu.org> <500F9CF7.7000900@gmx.at> <83d33jlv34.fsf@gnu.org> In-Reply-To: <83d33jlv34.fsf@gnu.org> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11984 Cc: 11984@debbugs.gnu.org, cyd@gnu.org, russell.sim@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > So feel free to replace the call to Fset_window_buffer with > set_window_buffer, if you think that's more appropriate. I've done that now. Let's look at the consequences. martin From unknown Tue Jun 17 20:28:50 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 11 Sep 2012 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator