[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom
From: |
Noam Postavsky |
Subject: |
bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom |
Date: |
Wed, 02 May 2018 20:04:28 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
martin rudalics <rudalics@gmx.at> writes:
>> So we need the same defense after prepare_menu_bars as we
>> have after do_pending_changes, I think.
>
> If you mean something like
>
> if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw)
> sw = w;
>
> I'm afraid that this would fail since selected_window has no buffer
> any more (or may have even been recycled already). Or am I missing
> something?
It seems to work (I don't know enough about the code to explain why). I
applied this patch:
--- i/src/xdisp.c
+++ w/src/xdisp.c
@@ -13936,6 +13936,11 @@ redisplay_internal (void)
if (NILP (Vmemory_full))
prepare_menu_bars ();
+ /* prepare_menu_bars may call lisp hooks and hence change the
+ selected_window. */
+ if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw)
+ sw = w;
+
reconsider_clip_changes (w);
/* In most cases selected window displays current buffer. */
And then following the original recipe does not segfault. There is a
Lisp error, but I think that's already a bug in zoom and/or doom.
Debugger entered--Lisp error: (wrong-type-argument window-live-p #<window 39>)
set-window-dedicated-p(#<window 39> t)
neo-window--init(#<window 39> #<buffer *NeoTree*>)
neo-global--create-window()
neo-global--get-window(t)
neo-global--open-dir("/home/npostavs/src/doom/")
neo-global--open()
neotree-show()
funcall-interactively(neotree-show)
call-interactively(neotree-show record nil)
command-execute(neotree-show record)
#f(compiled-function (cmd) #<bytecode 0x1289c19>)("neotree-show")
ivy-call()
ivy-read("M-x " ("toggle-debug-on-error" "zoom-mode" [...]
counsel-M-x()
funcall-interactively(counsel-M-x)
call-interactively(counsel-M-x nil nil)
command-execute(counsel-M-x)
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, (continued)
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Eli Zaretskii, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Andrea Cardaci, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Eli Zaretskii, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, martin rudalics, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Eli Zaretskii, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, martin rudalics, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Eli Zaretskii, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, martin rudalics, 2018/05/03
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom,
Noam Postavsky <=
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Eli Zaretskii, 2018/05/02
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Noam Postavsky, 2018/05/03
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Eli Zaretskii, 2018/05/03
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, Noam Postavsky, 2018/05/03
- bug#31312: Segmentation fault with doom-emacs, NeoTree and Zoom, martin rudalics, 2018/05/02