# HG changeset patch # User Richard M. Stallman # Date 1027621090 0 # Node ID 68c134e00c87a467d212814f0e705e49557761d5 # Parent 90b567ad02ed56c70b5038f70a531dc5a6ab0b55 (byte-compile-set-symbol-position): Don't recompute `entry' on each iteration. (byte-compile-delete-first): Make it defsubst. diff -r 90b567ad02ed -r 68c134e00c87 lisp/emacs-lisp/bytecomp.el --- a/lisp/emacs-lisp/bytecomp.el Thu Jul 25 18:16:45 2002 +0000 +++ b/lisp/emacs-lisp/bytecomp.el Thu Jul 25 18:18:10 2002 +0000 @@ -10,7 +10,7 @@ ;;; This version incorporates changes up to version 2.10 of the ;;; Zawinski-Furuseth compiler. -(defconst byte-compile-version "$Revision: 2.106 $") +(defconst byte-compile-version "$Revision: 2.107 $") ;; This file is part of GNU Emacs. @@ -848,7 +848,7 @@ "Last known character position in the input.") ;; copied from gnus-util.el -(defun byte-compile-delete-first (elt list) +(defsubst byte-compile-delete-first (elt list) (if (eq (car list) elt) (cdr list) (let ((total list)) @@ -872,18 +872,16 @@ ;; gross hack? And the answer, of course, would be yes. (defun byte-compile-set-symbol-position (sym &optional allow-previous) (when byte-compile-read-position - (let ((last nil)) + (let (last entry) (while (progn - (setq last byte-compile-last-position) - (let* ((entry (assq sym read-symbol-positions-list)) - (cur (cdr entry))) - (setq byte-compile-last-position - (if cur - (+ byte-compile-read-position cur) - last)) - (setq - read-symbol-positions-list - (byte-compile-delete-first entry read-symbol-positions-list))) + (setq last byte-compile-last-position + entry (assq sym read-symbol-positions-list)) + (when entry + (setq byte-compile-last-position + (+ byte-compile-read-position (cdr entry)) + read-symbol-positions-list + (byte-compile-delete-first + entry read-symbol-positions-list))) (or (and allow-previous (not (= last byte-compile-last-position))) (> last byte-compile-last-position)))))))