Function: edebug--restore-breakpoints

edebug--restore-breakpoints is a byte-compiled function defined in edebug.el.gz.

Signature

(edebug--restore-breakpoints NAME)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/edebug.el.gz
(defun edebug--restore-breakpoints (name)
  (let ((data (edebug-get-edebug-or-ghost name)))
    (when (consp data)
      (let ((offsets (nth 2 data))
            (breakpoints (nth 1 data))
            (start (nth 0 data))
            index)
        ;; Breakpoints refer to offsets from the start of the function.
        ;; The start position is a marker, so it'll move around in a
        ;; similar fashion as the breakpoint markers.  If we find a
        ;; breakpoint marker that refers to an offset (which is a place
        ;; where breakpoints can be made), then we restore it.
        (cl-loop for breakpoint in breakpoints
                 for marker = (nth 3 breakpoint)
                 when (and (marker-position marker)
                           (setq index (seq-position
                                        offsets
                                        (- (marker-position marker) start))))
                 collect (cons index (cdr breakpoint)))))))