branch: externals/org
commit 95f77669e01d9e483ad41e2496da11c0d3fc5267
Author: Ihor Radchenko <[email protected]>
Commit: Ihor Radchenko <[email protected]>
org-persist: Fix loading data with non-matching version
* lisp/org-persist.el (org-persist--find-index): Only match index
entries that contain _all_ the components of the given COLLECTION.
For example, when searching for
`((elisp org-element--cache) (version ,org-element-cache-version))
container, make sure that the returned value match both "elisp" and
"version" containers.
---
lisp/org-persist.el | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/lisp/org-persist.el b/lisp/org-persist.el
index b93e32274e..13e280c4de 100644
--- a/lisp/org-persist.el
+++ b/lisp/org-persist.el
@@ -540,7 +540,15 @@ FORMAT and ARGS are passed to `message'."
(and inode (gethash (cons cont (list :inode inode))
org-persist--index-hash))
(and hash (gethash (cons cont (list :hash hash))
org-persist--index-hash))
(and key (gethash (cons cont (list :key key))
org-persist--index-hash))))
- (when r (throw :found r))))))))
+ (when (and r
+ ;; Every element in CONTAINER matches
+ ;; COLLECTION.
+ (seq-every-p
+ (lambda (cont)
+ (org-persist-collection-let
+ (member cont container)))
+ container))
+ (throw :found r))))))))
(defun org-persist--add-to-index (collection &optional hash-only)
"Add or update COLLECTION in `org-persist--index'.