Mercurial > emacs
changeset 46690:68c134e00c87
(byte-compile-set-symbol-position): Don't recompute `entry' on each iteration.
(byte-compile-delete-first): Make it defsubst.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 25 Jul 2002 18:18:10 +0000 |
parents | 90b567ad02ed |
children | ac544e207278 |
files | lisp/emacs-lisp/bytecomp.el |
diffstat | 1 files changed, 11 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- 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)))))))