From cda8dc94dfff823bf0284e5140c6065f143a9f51 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 15 Mar 2022 12:55:51 -0600 Subject: Fix bug in dwarf-mode.el I noticed that, occasionally, dwarf-mode would think that the objdump subprocess was still running after it had clearly exited. I managed to reliably reproduce this today and learned that a process sentinel is not guaranteed to be run with the current buffer set to the process buffer. This patch fixes the problem. I've bumped the version number of dwarf-mode.el to make it easier to install for users who already have an earlier one installed. I'm checking this in. 2022-03-15 Tom Tromey * dwarf-mode.el: Now 1.7. (dwarf--sentinel): Switch to the process buffer. --- binutils/ChangeLog | 5 +++++ binutils/dwarf-mode.el | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 539849c..f717e0c 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2022-03-15 Tom Tromey + + * dwarf-mode.el: Now 1.7. + (dwarf--sentinel): Switch to the process buffer. + 2022-03-11 Vladimir Mezentsev * MAINTAINERS: Add gprofng maintainer. diff --git a/binutils/dwarf-mode.el b/binutils/dwarf-mode.el index 11aeb1f..9df875c 100644 --- a/binutils/dwarf-mode.el +++ b/binutils/dwarf-mode.el @@ -1,6 +1,6 @@ ;;; dwarf-mode.el --- Browser for DWARF information. -*-lexical-binding:t-*- -;; Version: 1.6 +;; Version: 1.7 ;; Copyright (C) 2012-2022 Free Software Foundation, Inc. @@ -62,9 +62,11 @@ (set-marker (process-mark proc) (point)) (set-buffer-modified-p nil)))))) -(defun dwarf--sentinel (_proc _status) - (setq mode-line-process nil) - (setq dwarf--process nil)) +(defun dwarf--sentinel (proc _status) + (when (buffer-live-p (process-buffer proc)) + (with-current-buffer (process-buffer proc) + (setq mode-line-process nil) + (setq dwarf--process nil)))) (defun dwarf--invoke (start end &rest command) "Invoke a command and arrange to insert output into the current buffer." -- cgit v1.1