diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2015-08-20 17:06:54 +0200 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2015-08-20 17:06:54 +0200 |
| commit | e4e5d1e10453aa2731df296156379850aa503490 (patch) | |
| tree | 3b8210326019cd35053589234fc85fd24c41211e /lisp | |
| parent | e8a63ce76a4757494f2de269cd5fc99bef89bd18 (diff) | |
blame: abort if the file-visiting buffer was killed
Fixes #2188.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/magit-blame.el | 8 |
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 |
