forked from mirrors/org-mode
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.
This commit is contained in:
parent
557275af54
commit
c20bf88205
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue