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-info 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-info' 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)))