diff --git a/lisp/org.el b/lisp/org.el index f40131ecb..1d9246e4e 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -11812,12 +11812,13 @@ Inherited tags have the `inherited' text property." (if (org-element--cache-active-p) ;; `org-element-cache-map' is about 2x faster compared to regexp ;; search. - (let ((tags (org-element-cache-map - (lambda (el) (org-element-property :tags el))))) - (mapcar #'list (mapcar #'substring-no-properties - (delete-dups - (append org-file-tags - (apply #'append tags)))))) + (let ((hashed (make-hash-table :test #'equal))) + (org-element-cache-map + (lambda (el) + (dolist (tag (org-element-property :tags el)) + (puthash (list tag) t hashed)))) + (dolist (tag org-file-tags) (puthash (list tag) t hashed)) + (hash-table-keys hashed)) (org-with-point-at 1 (let (tags) (while (re-search-forward org-tag-line-re nil t)