From: João Távora Date: Thu, 28 Mar 2019 18:04:35 +0000 (+0000) Subject: More carefully cleanup Flymake C/C++ backend's temp buffers X-Git-Tag: emacs-27.0.90~2126 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1bf5be5d37f5bd72aecd2ee266d069d9a9cafc10;p=emacs.git More carefully cleanup Flymake C/C++ backend's temp buffers Sometimes the Flymake process dies by some means that doesn't involve a sentinel call for the "exit" status, so we clean up the temporary buffer as soon as we notice it's not process-alive-p anymore. * lisp/progmodes/flymake-cc.el (flymake-cc): Broaden cleanup conditions. --- diff --git a/lisp/progmodes/flymake-cc.el b/lisp/progmodes/flymake-cc.el index 5733ef4d666..ecf6e648a7e 100644 --- a/lisp/progmodes/flymake-cc.el +++ b/lisp/progmodes/flymake-cc.el @@ -120,8 +120,8 @@ REPORT-FN is Flymake's callback." :noquery t :connection-type 'pipe :sentinel (lambda (p _ev) - (when (eq 'exit (process-status p)) - (unwind-protect + (unwind-protect + (when (eq 'exit (process-status p)) (when (with-current-buffer source (eq p flymake-cc--proc)) (with-current-buffer (process-buffer p) (goto-char (point-min)) @@ -135,7 +135,8 @@ REPORT-FN is Flymake's callback." :panic :explanation (buffer-substring (point-min) (progn (goto-char (point-min)) - (line-end-position)))))))) + (line-end-position))))))))) + (unless (process-live-p p) ;; (display-buffer (process-buffer p)) ; uncomment to debug (kill-buffer (process-buffer p))))))) (process-send-region flymake-cc--proc (point-min) (point-max))