Function: org-element--cache-put
org-element--cache-put is a byte-compiled function defined in
org-element.el.gz.
Signature
(org-element--cache-put ELEMENT)
Documentation
Store ELEMENT in current buffer's cache, if allowed.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-element.el.gz
(defun org-element--cache-put (element)
"Store ELEMENT in current buffer's cache, if allowed."
(org-with-base-buffer nil
(when (org-element--cache-active-p)
(when org-element--cache-sync-requests
;; During synchronization, first build an appropriate key for
;; the new element so `avl-tree-enter' can insert it at the
;; right spot in the cache.
(let* ((keys (org-element--cache-find
(org-element-begin element) 'both))
(new-key (org-element--cache-generate-key
(and (car keys) (org-element--cache-key (car keys)))
(cond ((cdr keys) (org-element--cache-key (cdr keys)))
(org-element--cache-sync-requests
(org-element--request-key (car org-element--cache-sync-requests)))))))
(org-element-put-property
element
:org-element--cache-sync-key
(cons org-element--cache-sync-keys-value new-key))))
(when (>= org-element--cache-diagnostics-level 2)
(org-element--cache-log-message
"Added new element with %S key: %S"
(org-element-property :org-element--cache-sync-key element)
(org-element--format-element element)))
(org-element-put-property element :cached t)
(when (org-element-type-p element '(headline inlinetask))
(cl-incf org-element--headline-cache-size)
(avl-tree-enter org-element--headline-cache element))
(cl-incf org-element--cache-size)
(avl-tree-enter org-element--cache element))))