Function: byte-run--strip-vector/record

byte-run--strip-vector/record is a byte-compiled function defined in byte-run.el.gz.

Signature

(byte-run--strip-vector/record ARG)

Documentation

Strip the positions from symbols with position in the vector/record ARG.

This is done by destructively modifying ARG. Return ARG.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-run.el.gz
(defalias 'byte-run--strip-vector/record
  #'(lambda (arg)
      "Strip the positions from symbols with position in the vector/record ARG.
This is done by destructively modifying ARG.  Return ARG."
      (unless (gethash arg byte-run--ssp-seen)
        (let ((len (length arg))
              (i 0)
              elt)
          (puthash arg t byte-run--ssp-seen)
          (while (< i len)
            (setq elt (aref arg i))
            (cond
             ((symbol-with-pos-p elt)
              (aset arg i elt))
             ((consp elt)
              (byte-run--strip-list elt))
             ((or (vectorp elt) (recordp elt))
              (byte-run--strip-vector/record elt)))
            (setq i (1+ i)))))
      arg))