Function: ebrowse-fill-member-table
ebrowse-fill-member-table is a byte-compiled function defined in
ebrowse.el.gz.
Signature
(ebrowse-fill-member-table)
Documentation
Return a hash table holding all members of all classes in the current tree.
For each member, a symbol is added to the table. Members are
extracted from the buffer-local tree ebrowse--tree-table.
Each symbol has its property ebrowse-tree set to a list (TREE MEMBER-LIST
MEMBER) where TREE is the tree in which the member is defined,
MEMBER-LIST is a symbol describing the member list in which the member
is found, and MEMBER is a MEMBER structure describing the member.
The slot member-table of the buffer-local header structure of
type ebrowse-hs is set to the resulting table.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ebrowse.el.gz
;;; Operations for member tables
(defun ebrowse-fill-member-table ()
"Return a hash table holding all members of all classes in the current tree.
For each member, a symbol is added to the table. Members are
extracted from the buffer-local tree `ebrowse--tree-table'.
Each symbol has its property `ebrowse-tree' set to a list (TREE MEMBER-LIST
MEMBER) where TREE is the tree in which the member is defined,
MEMBER-LIST is a symbol describing the member list in which the member
is found, and MEMBER is a MEMBER structure describing the member.
The slot `member-table' of the buffer-local header structure of
type `ebrowse-hs' is set to the resulting table."
(let ((members (make-hash-table :test 'equal))
(i -1))
(setf (ebrowse-hs-member-table ebrowse--header) nil)
(garbage-collect)
;; For all classes...
(ebrowse-for-all-trees (c ebrowse--tree-table)
(when (zerop (% (cl-incf i) 10))
(ebrowse-show-progress "Preparing member lookup" (zerop i)))
(dolist (f ebrowse-member-list-accessors)
(dolist (m (funcall f c))
(push (list c f m) (gethash (ebrowse-ms-name m) members)))))
(setf (ebrowse-hs-member-table ebrowse--header) members)))