org-persist: Cleanup on removal and version mismatch

* lisp/org-persist.el (org-persist--remove-from-index):
(org-persist-load:index): Garbage collect caches.
This commit is contained in:
Ihor Radchenko 2022-01-12 20:33:22 +08:00
parent dafa32da49
commit 703df9310a
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 6 additions and 0 deletions

View File

@ -328,6 +328,7 @@ Return PLIST."
(when existing
(org-persist-collection-let collection
(dolist (cont (cons container container))
(org-persist-gc:generic cont collection)
(remhash (cons cont associated) org-persist--index-hash)
(when path (remhash (cons cont (list :file path)) org-persist--index-hash))
(when inode (remhash (cons cont (list :inode inode)) org-persist--index-hash))
@ -494,6 +495,11 @@ COLLECTION is the plist holding data collectin."
(if org-persist--index
(mapc (lambda (collection) (org-persist--add-to-index collection 'hash)) org-persist--index)
(setq org-persist--index nil)
(when (file-exists-p org-persist-directory)
(dolist (file (directory-files org-persist-directory 'absolute "^[^.][^.]"))
(if (file-directory-p file)
(delete-directory file t)
(delete-file file))))
(plist-put (org-persist--get-collection container) :expiry 'never))))
(defun org-persist--load-index ()