Commit 0b46acbf authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(byte-compile-form): Move the calls to byte-compile-set-symbol-position,

to avoid having two for the same symbol occurrence.
parent 9961365e
...@@ -914,14 +914,14 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." ...@@ -914,14 +914,14 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
(when byte-compile-read-position (when byte-compile-read-position
(let (last entry) (let (last entry)
(while (progn (while (progn
(setq last byte-compile-last-position (setq last byte-compile-last-position
entry (assq sym read-symbol-positions-list)) entry (assq sym read-symbol-positions-list))
(when entry (when entry
(setq byte-compile-last-position (setq byte-compile-last-position
(+ byte-compile-read-position (cdr entry)) (+ byte-compile-read-position (cdr entry))
read-symbol-positions-list read-symbol-positions-list
(byte-compile-delete-first (byte-compile-delete-first
entry read-symbol-positions-list))) entry read-symbol-positions-list)))
(or (and allow-previous (not (= last byte-compile-last-position))) (or (and allow-previous (not (= last byte-compile-last-position)))
(> last byte-compile-last-position))))))) (> last byte-compile-last-position)))))))
...@@ -2714,17 +2714,18 @@ If FORM is a lambda or a macro, byte-compile it as a function." ...@@ -2714,17 +2714,18 @@ If FORM is a lambda or a macro, byte-compile it as a function."
(defun byte-compile-form (form &optional for-effect) (defun byte-compile-form (form &optional for-effect)
(setq form (macroexpand form byte-compile-macro-environment)) (setq form (macroexpand form byte-compile-macro-environment))
(cond ((not (consp form)) (cond ((not (consp form))
(when (symbolp form)
(byte-compile-set-symbol-position form))
(cond ((or (not (symbolp form)) (byte-compile-const-symbol-p 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)) (byte-compile-constant form))
((and for-effect byte-compile-delete-errors) ((and for-effect byte-compile-delete-errors)
(when (symbolp form)
(byte-compile-set-symbol-position form))
(setq for-effect nil)) (setq for-effect nil))
(t (byte-compile-variable-ref 'byte-varref form)))) (t (byte-compile-variable-ref 'byte-varref form))))
((symbolp (car form)) ((symbolp (car form))
(let* ((fn (car form)) (let* ((fn (car form))
(handler (get fn 'byte-compile))) (handler (get fn 'byte-compile)))
(byte-compile-set-symbol-position fn)
(when (byte-compile-const-symbol-p fn) (when (byte-compile-const-symbol-p fn)
(byte-compile-warn "`%s' called as a function" fn)) (byte-compile-warn "`%s' called as a function" fn))
(and (memq 'interactive-only byte-compile-warnings) (and (memq 'interactive-only byte-compile-warnings)
...@@ -2735,7 +2736,9 @@ That command is designed for interactive use only" fn)) ...@@ -2735,7 +2736,9 @@ That command is designed for interactive use only" fn))
(or (not (byte-compile-version-cond (or (not (byte-compile-version-cond
byte-compile-compatibility)) byte-compile-compatibility))
(not (get (get fn 'byte-opcode) 'emacs19-opcode)))) (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) (if (memq 'callargs byte-compile-warnings)
(byte-compile-callargs-warn form)) (byte-compile-callargs-warn form))
(byte-compile-normal-call form)) (byte-compile-normal-call form))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment