emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master b7d3c1e 1/2: Forestall "Selected deleted buffer" in url-http-gene


From: Lars Ingebrigtsen
Subject: master b7d3c1e 1/2: Forestall "Selected deleted buffer" in url-http-generic-filter
Date: Mon, 9 Aug 2021 10:03:20 -0400 (EDT)

branch: master
commit b7d3c1e57743df464cd7c3ee43493fbbd2ae8705
Author: dickmao <none>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Forestall "Selected deleted buffer" in url-http-generic-filter
    
    * lisp/url/url-http.el (url-http-generic-filter): Check that
    corresponding buffer is still live before using it (bug#49928).
---
 lisp/url/url-http.el | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index e3c1786..ba13a17 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1494,17 +1494,18 @@ The return value of this function is the retrieval 
buffer."
   ;; Sometimes we get a zero-length data chunk after the process has
   ;; been changed to 'free', which means it has no buffer associated
   ;; with it.  Do nothing if there is no buffer, or 0 length data.
-  (and (process-buffer proc)
-       (/= (length data) 0)
-       (with-current-buffer (process-buffer proc)
-        (url-http-debug "Calling after change function `%s' for `%S'" 
url-http-after-change-function proc)
-        (funcall url-http-after-change-function
-                 (point-max)
-                 (progn
-                   (goto-char (point-max))
-                   (insert data)
-                   (point-max))
-                 (length data)))))
+  (let ((b (process-buffer proc)))
+    (when (and (buffer-live-p b) (not (zerop (length data))))
+      (with-current-buffer b
+        (url-http-debug "Calling after change function `%s' for `%S'"
+                        url-http-after-change-function proc)
+        (funcall url-http-after-change-function
+                 (point-max)
+                 (progn
+                   (goto-char (point-max))
+                   (insert data)
+                   (point-max))
+                 (length data))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; file-name-handler stuff from here on out



reply via email to

[Prev in Thread] Current Thread [Next in Thread]