branch: externals/org
commit b8d01a745be1f234a2400f467732035aa3d7000e
Author: Ihor Radchenko <[email protected]>
Commit: Ihor Radchenko <[email protected]>
org-persist: Optimize performance of `org-persist--normalize-associated'
* lisp/org-persist.el (org-persist--get-collection):
(org-persist-register): Only call `org-persist--normalize-associated'
from API functions. Assume that arguments to internal functions are
normalized.
(org-persist--normalize-associated): Make inlinable. Handle nil value fast.
---
lisp/org-persist.el | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lisp/org-persist.el b/lisp/org-persist.el
index 603d811778..d96a303820 100644
--- a/lisp/org-persist.el
+++ b/lisp/org-persist.el
@@ -630,7 +630,6 @@ or file-path, (:inode inode), (:hash hash), or or (:key
key).
MISC, if non-nil will be appended to the collection. It must be a plist."
(unless (and (listp container) (listp (car container)))
(setq container (list container)))
- (setq associated (org-persist--normalize-associated associated))
(when (and misc (or (not (listp misc)) (= 1 (% (length misc) 2))))
(error "org-persist: Not a plist: %S" misc))
(or (org-persist--find-index
@@ -667,9 +666,10 @@ When INNER is non-nil, do not try to match as list of
containers."
(defvar org-persist--associated-buffer-cache (make-hash-table :weakness 'key)
"Buffer hash cache.")
-(defun org-persist--normalize-associated (associated)
+(defsubst org-persist--normalize-associated (associated)
"Normalize ASSOCIATED representation into (:type value)."
(pcase associated
+ (`nil nil)
((or (pred stringp) `(:file ,_))
(unless (stringp associated)
(setq associated (cadr associated)))
@@ -1009,6 +1009,7 @@ When WRITE-IMMEDIATELY is non-nil, the return value will
be the same
with `org-persist-write'."
(unless org-persist--index (org-persist--load-index))
(setq container (org-persist--normalize-container container))
+ (setq associated (org-persist--normalize-associated associated))
(when inherit
(setq inherit (org-persist--normalize-container inherit))
(let ((inherited-collection (org-persist--get-collection inherit
associated))