Closed netjune closed 6 years ago
After a 3-way ediff, there is an error message as in the title. I think it may be because ediff quickly save and kill some buffer between irony sending parse request and recieving result from the external process.
Debugger entered--Lisp error: (error "Selecting deleted buffer") set-buffer(#) (save-current-buffer (set-buffer buffer) (let ((callbacks irony--parse-buffer-callbacks) (status (cond ((not (equal context ...)) (quote cancelled)) (result (quote success)) (t (quote failed))))) (setq irony--parse-buffer-last-results (list status) irony--parse-buffer-callbacks nil irony--parse-buffer-state (cons context (quote done))) (mapc (function (lambda (cb) (funcall cb status))) callbacks))) irony--parse-request-handler(t 207 #) apply(irony--parse-request-handler t (207 #)) (condition-case err (apply (car callback) sexp (cdr callback)) ((debug error) (message "Warning: %S" err) nil)) (let ((sexp (read response)) (callback (irony--server-process-pop-callback process))) (condition-case err (apply (car callback) sexp (cdr callback)) ((debug error) (message "Warning: %S" err) nil))) irony--process-server-response(# "t\n\n;;EOT\n") (lambda (r) (irony--process-server-response process r))("t\n\n;;EOT\n") mapc((lambda (r) (irony--process-server-response process r)) ("t\n\n;;EOT\n" "t\n\n;;EOT\n")) (let ((pbuf (process-buffer process)) responses) (if (buffer-live-p pbuf) (progn (save-current-buffer (set-buffer pbuf) (save-excursion (goto-char (process-mark process)) (insert output) (set-marker (process-mark process) (point)) (goto-char (point-min)) (while (search-forward irony--eot nil t) (let (...) (delete-region ... ...) (setq responses ...))) (goto-char (process-mark process)))))) (mapc (function (lambda (r) (irony--process-server-response process r))) (nreverse responses))) irony--server-process-filter(# "t\n\n;;EOT\nt\n\n;;EOT\n") read-event() map-y-or-n-p(#[257 "\304!\205X \305!\205X \306!?\205X \307!\204+ \301\205X \211q\210\205X \310 \311V\205X \312\301!\203; r\211q\210\301 )\205X \300\203A \313\207\302\313\240\210\307!\203R \314\315\307!\"\207\314\316\317!\"\207" [nil (lambda nil (eq (current-buffer) file-buffer)) (t) buffer-offer-save buffer-live-p buffer-modified-p buffer-base-buffer buffer-file-name buffer-size 0 functionp t format "Save file %s? " "Save buffer %s? " buffer-name] 5 "\n\n(fn BUFFER)"] #[257 "r\211q\210\300 )\207" [save-buffer] 2 "\n\n(fn BUFFER)"] (#<buffer magit: repo1> # #<buffer Minibuf-1> #<buffer vbox_cloud_server2/main.cpp> # # # # # # # # #<buffer device_center/storeman.cpp> # #<buffer device_center/storeman.hh> # # # # # # # # # #<buffer w_vbox_server_客户端协议.tex> #<buffer w_vbox_server_客户端协议.org> #<buffer gb28181_center/loader_man.cpp> #<buffer device_center/loader_man.cpp> #<buffer gb28181_center/storeman.cpp> # #<buffer device_center/loader_man.hh> # # # #<buffer gb28181_center/loader_man.hh> #<buffer gb28181_center/storeman.hh> # # #<buffer config_server/main.cpp> # # # # # # # # # # # ...) ("buffer" "buffers" "save") ((18 #[257 "\204 \302!\210\211\202 \303\304\"\210\305 \210\306\207" [enable-recursive-minibuffers other-window-scroll-buffer display-buffer view-buffer #[257 "\300 \207" [exit-recursive-edit] 2 "\n\n(fn )"] recursive-edit nil] 4 "\n\n(fn BUF)"] "view this buffer") (100 #[257 "\302!\204 \303\304!\210\202/ \305\306!\210\307\302!\310\311$\204&
After a 3-way ediff, there is an error message as in the title. I think it may be because ediff quickly save and kill some buffer between irony sending parse request and recieving result from the external process.
Debugger entered--Lisp error: (error "Selecting deleted buffer") set-buffer(#)
(save-current-buffer (set-buffer buffer) (let ((callbacks irony--parse-buffer-callbacks) (status (cond ((not (equal context ...)) (quote cancelled)) (result (quote success)) (t (quote failed))))) (setq irony--parse-buffer-last-results (list status) irony--parse-buffer-callbacks nil irony--parse-buffer-state (cons context (quote done))) (mapc (function (lambda (cb) (funcall cb status))) callbacks)))
irony--parse-request-handler(t 207 #)
apply(irony--parse-request-handler t (207 #))
(condition-case err (apply (car callback) sexp (cdr callback)) ((debug error) (message "Warning: %S" err) nil))
(let ((sexp (read response)) (callback (irony--server-process-pop-callback process))) (condition-case err (apply (car callback) sexp (cdr callback)) ((debug error) (message "Warning: %S" err) nil)))
irony--process-server-response(# "t\n\n;;EOT\n")
(lambda (r) (irony--process-server-response process r))("t\n\n;;EOT\n")
mapc((lambda (r) (irony--process-server-response process r)) ("t\n\n;;EOT\n" "t\n\n;;EOT\n"))
(let ((pbuf (process-buffer process)) responses) (if (buffer-live-p pbuf) (progn (save-current-buffer (set-buffer pbuf) (save-excursion (goto-char (process-mark process)) (insert output) (set-marker (process-mark process) (point)) (goto-char (point-min)) (while (search-forward irony--eot nil t) (let (...) (delete-region ... ...) (setq responses ...))) (goto-char (process-mark process)))))) (mapc (function (lambda (r) (irony--process-server-response process r))) (nreverse responses)))
irony--server-process-filter(# "t\n\n;;EOT\nt\n\n;;EOT\n")
read-event()
map-y-or-n-p(#[257 "\304!\205X \305!\205X \306!?\205X \307!\204+ \301\205X \211q\210\205X \310 \311V\205X \312\301!\203; r\211q\210\301 )\205X \300\203A \313\207\302\313\240\210\307!\203R \314\315\307!\"\207\314\316\317!\"\207" [nil (lambda nil (eq (current-buffer) file-buffer)) (t) buffer-offer-save buffer-live-p buffer-modified-p buffer-base-buffer buffer-file-name buffer-size 0 functionp t format "Save file %s? " "Save buffer %s? " buffer-name] 5 "\n\n(fn BUFFER)"] #[257 "r\211q\210\300 )\207" [save-buffer] 2 "\n\n(fn BUFFER)"] (#<buffer magit: repo1> # #<buffer Minibuf-1> #<buffer vbox_cloud_server2/main.cpp> # # # # # # # # #<buffer device_center/storeman.cpp> # #<buffer device_center/storeman.hh> # # # # # # # # # #<buffer w_vbox_server_客户端协议.tex> #<buffer w_vbox_server_客户端协议.org> #<buffer gb28181_center/loader_man.cpp> #<buffer device_center/loader_man.cpp> #<buffer gb28181_center/storeman.cpp> # #<buffer device_center/loader_man.hh> # # # #<buffer gb28181_center/loader_man.hh> #<buffer gb28181_center/storeman.hh> # # #<buffer config_server/main.cpp> # # # # # # # # # # # ...) ("buffer" "buffers" "save") ((18 #[257 "\204
\302!\210\211\202 \303\304\"\210\305 \210\306\207" [enable-recursive-minibuffers other-window-scroll-buffer display-buffer view-buffer #[257 "\300 \207" [exit-recursive-edit] 2 "\n\n(fn )"] recursive-edit nil] 4 "\n\n(fn BUF)"] "view this buffer") (100 #[257 "\302!\204
\303\304!\210\202/ \305\306!\210\307\302!\310\311$\204&