aboutsummaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2015-08-20 17:06:54 +0200
committerJonas Bernoulli <jonas@bernoul.li>2015-08-20 17:06:54 +0200
commite4e5d1e10453aa2731df296156379850aa503490 (patch)
tree3b8210326019cd35053589234fc85fd24c41211e /lisp
parente8a63ce76a4757494f2de269cd5fc99bef89bd18 (diff)
blame: abort if the file-visiting buffer was killed
Fixes #2188.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/magit-blame.el8
1 files changed, 8 insertions, 0 deletions
diff --git a/lisp/magit-blame.el b/lisp/magit-blame.el
index 439ccc6..d7b6cdd 100644
--- a/lisp/magit-blame.el
+++ b/lisp/magit-blame.el
@@ -248,6 +248,7 @@ only arguments available from `magit-blame-popup' should be used.
`(lambda (process event)
(when (memq (process-status process) '(exit signal))
(magit-process-sentinel process event)
+ (magit-blame-assert-buffer process)
(with-current-buffer (process-get process 'command-buf)
(when magit-blame-mode
(let ((magit-process-popup-time -1)
@@ -267,6 +268,7 @@ only arguments available from `magit-blame-popup' should be used.
(magit-process-sentinel process event)
(if (eq status 'exit)
(message "Blaming...done")
+ (magit-blame-assert-buffer process)
(with-current-buffer (process-get process 'command-buf)
(magit-blame-mode -1))
(message "Blaming...failed")))))
@@ -281,6 +283,7 @@ This is intended for debugging purposes.")
(--when-let (process-get process 'partial-line)
(setq string (concat it string))
(setf (process-get process 'partial-line) nil))
+ (magit-blame-assert-buffer process)
(with-current-buffer (process-get process 'command-buf)
(when magit-blame-mode
(let ((chunk (process-get process 'chunk))
@@ -325,6 +328,11 @@ This is intended for debugging purposes.")
(match-string 2 line))))
(process-put process 'chunk chunk))))))
+(defun magit-blame-assert-buffer (process)
+ (unless (buffer-live-p (process-get process 'command-buf))
+ (kill-process process)
+ (user-error "Buffer being blamed has been killed")))
+
(defun magit-blame-make-overlay (chunk)
(let ((ov (save-excursion
(save-restriction