]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify `file-notify--rm-descriptor'
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 27 Sep 2021 18:35:31 +0000 (20:35 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 27 Sep 2021 18:35:31 +0000 (20:35 +0200)
* lisp/filenotify.el (file-notify--rm-descriptor):
Use `file-notify-handle-event'.

lisp/filenotify.el

index a0c37582386e516080064dfb4b60bf7d86c79fd7..e0dceb704d5500e658a93a2591a0c78b9d97138f 100644 (file)
@@ -76,16 +76,17 @@ struct.")
   "Remove DESCRIPTOR from `file-notify-descriptors'.
 DESCRIPTOR should be an object returned by `file-notify-add-watch'.
 If it is registered in `file-notify-descriptors', a `stopped' event is sent."
-  (when-let* ((watch (gethash descriptor file-notify-descriptors)))
-    (let ((callback (file-notify--watch-callback watch)))
-      ;; Make sure this is the last time the callback is invoked.
+  (when-let ((watch (gethash descriptor file-notify-descriptors)))
+    (unwind-protect
+        ;; Send `stopped' event.
+        (file-notify-handle-event
+         (make-file-notify
+          :-event `(,descriptor stopped
+                    ,(file-notify--watch-absolute-filename watch))
+          :-callback (file-notify--watch-callback watch)))
+      ;; Make sure this is the last time the callback was invoked.
       (setf (file-notify--watch-callback watch) nil)
-      ;; Send `stopped' event.
-      (unwind-protect
-          (funcall
-           callback
-           `(,descriptor stopped ,(file-notify--watch-absolute-filename watch)))
-        (remhash descriptor file-notify-descriptors)))))
+      (remhash descriptor file-notify-descriptors))))
 
 (cl-defstruct (file-notify (:type list) :named)
   "A file system monitoring event, coming from the backends."