Function: org-element--cache-persist-after-read
org-element--cache-persist-after-read is a byte-compiled function
defined in org-element.el.gz.
Signature
(org-element--cache-persist-after-read CONTAINER &optional ASSOCIATED)
Documentation
Setup restored cache for CONTAINER and ASSOCIATED.
Re-fill :buffer properties for cache elements (buffer objects cannot be written onto disk). Also, perform some consistency checks to prevent loading corrupted cache.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-element.el.gz
(defun org-element--cache-persist-after-read (container &optional associated)
"Setup restored cache for CONTAINER and ASSOCIATED.
Re-fill :buffer properties for cache elements (buffer objects cannot
be written onto disk). Also, perform some consistency checks to
prevent loading corrupted cache."
(when (and (plist-get associated :file)
(get-file-buffer (plist-get associated :file)))
(with-current-buffer (get-file-buffer (plist-get associated :file))
(when (and org-element-use-cache org-element-cache-persistent)
(catch 'abort
(when (and (equal container '(elisp org-element--cache)) org-element--cache)
;; Restore `:buffer' property.
(avl-tree-mapc
(lambda (el)
(org-element-map el t
(lambda (el2)
(unless (org-element-type-p el2 'plain-text)
(org-element-put-property el2 :buffer (current-buffer))))
nil nil nil 'with-affiliated 'no-undefer)
(org-element--cache-log-message
"Recovering persistent cached element: %S"
(org-element--format-element el))
(when (and (not (org-element-parent el)) (not (org-element-type-p el 'org-data)))
(org-element--cache-warn
"Got element without parent when loading cache from disk. Not using this persistent cache.
Please report it to Org mode mailing list (M-x org-submit-bug-report).\n%S" el)
(org-element-cache-reset)
(throw 'abort t)))
org-element--cache)
(setq-local org-element--cache-size (avl-tree-size org-element--cache)))
(when (and (equal container '(elisp org-element--headline-cache)) org-element--headline-cache)
(setq-local org-element--headline-cache-size (avl-tree-size org-element--headline-cache))))))))