From c20bf882055f7f9840cca048335964f4979217b4 Mon Sep 17 00:00:00 2001 From: TEC Date: Sat, 6 Jan 2024 16:35:12 +0800 Subject: [PATCH] org-latex-preview: Guard against deleted buf/ov * lisp/org-latex-preview.el (org-latex-preview--place-images): Since the image generation and placement is asynchronous, it is possible that in the meantime the target overlay or even buffer could be deleted. To avoid errors, we simple check that this is not the case before attempting to place preview images. --- lisp/org-latex-preview.el | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lisp/org-latex-preview.el b/lisp/org-latex-preview.el index 109934a38..44e943bf5 100644 --- a/lisp/org-latex-preview.el +++ b/lisp/org-latex-preview.el @@ -2153,21 +2153,21 @@ listed in EXTENDED-INFO will be used. If this is an export run, images will only be cached, not placed." (let ((fragments (or fragments (plist-get extended-info :fragments)))) (if (plist-get extended-info :place-preview-p) - (with-current-buffer (plist-get extended-info :org-buffer) - (save-excursion - (cl-loop - for fragment-info in fragments - for image-file = (plist-get fragment-info :path) - for ov = (plist-get fragment-info :overlay) - do (unless (overlay-buffer ov) - (message "Offending overlay for fragment %S" fragment-info)) - do (org-latex-preview--update-overlay - ov - (org-latex-preview--cache-image - (plist-get fragment-info :key) - image-file - (org-latex-preview--display-info - extended-info fragment-info)))))) + (when (buffer-live-p (plist-get extended-info :org-buffer)) + (with-current-buffer (plist-get extended-info :org-buffer) + (save-excursion + (cl-loop + for fragment-info in fragments + for image-file = (plist-get fragment-info :path) + for ov = (plist-get fragment-info :overlay) + when (overlay-buffer ov) + do (org-latex-preview--update-overlay + ov + (org-latex-preview--cache-image + (plist-get fragment-info :key) + image-file + (org-latex-preview--display-info + extended-info fragment-info))))))) (dolist (fragment-info fragments) (org-latex-preview--cache-image (plist-get fragment-info :key)