Mercurial > emacs
changeset 58377:01886d0fea34
(byte-compile-form): Move the calls to byte-compile-set-symbol-position,
to avoid having two for the same symbol occurrence.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 21 Nov 2004 00:47:13 +0000 |
parents | 3b0280015770 |
children | da1fdf9e696b |
files | lisp/emacs-lisp/bytecomp.el |
diffstat | 1 files changed, 15 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/bytecomp.el Sun Nov 21 00:40:54 2004 +0000 +++ b/lisp/emacs-lisp/bytecomp.el Sun Nov 21 00:47:13 2004 +0000 @@ -914,14 +914,14 @@ (when byte-compile-read-position (let (last entry) (while (progn - (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))) + (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))))))) @@ -2714,17 +2714,18 @@ (defun byte-compile-form (form &optional for-effect) (setq form (macroexpand form byte-compile-macro-environment)) (cond ((not (consp form)) - (when (symbolp form) - (byte-compile-set-symbol-position form)) (cond ((or (not (symbolp form)) (byte-compile-const-symbol-p form)) + (when (symbolp form) + (byte-compile-set-symbol-position form)) (byte-compile-constant form)) ((and for-effect byte-compile-delete-errors) + (when (symbolp form) + (byte-compile-set-symbol-position form)) (setq for-effect nil)) (t (byte-compile-variable-ref 'byte-varref form)))) ((symbolp (car form)) (let* ((fn (car form)) (handler (get fn 'byte-compile))) - (byte-compile-set-symbol-position fn) (when (byte-compile-const-symbol-p fn) (byte-compile-warn "`%s' called as a function" fn)) (and (memq 'interactive-only byte-compile-warnings) @@ -2735,7 +2736,9 @@ (or (not (byte-compile-version-cond byte-compile-compatibility)) (not (get (get fn 'byte-opcode) 'emacs19-opcode)))) - (funcall handler form) + (progn + (byte-compile-set-symbol-position fn) + (funcall handler form)) (if (memq 'callargs byte-compile-warnings) (byte-compile-callargs-warn form)) (byte-compile-normal-call form))