Function: registry-reindex

registry-reindex is a byte-compiled function defined in registry.el.gz.

Signature

(registry-reindex ARG &rest ARGS)

Implementations

(registry-reindex (DB registry-db)) in `registry.el'.

Rebuild the secondary indices of registry-db DB.

Source Code

;; Defined in /usr/src/emacs/lisp/registry.el.gz
(cl-defmethod registry-reindex ((db registry-db))
  "Rebuild the secondary indices of registry-db DB."
  (let ((count 0)
	(expected (* (length (oref db tracked)) (registry-size db))))
    (dolist (tr (oref db tracked))
      (maphash
       (lambda (key v)
	 (cl-incf count)
	 (when (and (< 0 expected)
		    (= 0 (mod count 1000)))
	   (message "reindexing: %d of %d (%.2f%%)"
		    count expected (/ (* 100.0 count) expected)))
	 (dolist (val (cdr-safe (assq tr v)))
	   (let ((value-keys (registry-lookup-secondary-value db tr val)))
	     (push key value-keys)
	     (registry-lookup-secondary-value db tr val value-keys))))
       (oref db data)))))