summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2012-10-11 16:08:38 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2012-10-11 16:08:38 -0400
commit5253a5fd755a26e30c73653bc49066f0649ec0eb (patch)
tree2b0d0acea8460e0b881dd90156c89aca55c73650
parentac9fc2c779445a88cdf0ae2fa042879bb7ff0d16 (diff)
downloademacs-5253a5fd755a26e30c73653bc49066f0649ec0eb.tar.gz
Fix spurious "cl--defsubst-expand might not be defined at runtime"
* lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago changes to the format of load-history. * src/eval.c (Fautoload): Remember previous autoload status in load-history.
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/emacs-lisp/bytecomp.el8
-rw-r--r--src/ChangeLog4
-rw-r--r--src/eval.c8
4 files changed, 15 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ba105ce4716..8d9c85c1326 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
+ * emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to long-ago
+ changes to the format of load-history.
+
* international/mule-cmds.el (read-char-by-name): Move let-binding of
completion-ignore-case in case that var is buffer-local (bug#12615).
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 4dd44bb6f22..7534ce5eaca 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -875,13 +875,11 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
(byte-compile-cl-file-p (car xs))))
(dolist (s xs)
(cond
- ((symbolp s)
- (unless (memq s old-autoloads)
- (push s byte-compile-noruntime-functions)))
((and (consp s) (eq t (car s)))
(push (cdr s) old-autoloads))
- ((and (consp s) (eq 'autoload (car s)))
- (push (cdr s) byte-compile-noruntime-functions)))))))
+ ((and (consp s) (memq (car s) '(autoload defun)))
+ (unless (memq (cdr s) old-autoloads)
+ (push (cdr s) byte-compile-noruntime-functions))))))))
;; Go through current-load-list for the locally defined funs.
(let (old-autoloads)
(while (and hist-nil-new (not (eq hist-nil-new hist-nil-orig)))
diff --git a/src/ChangeLog b/src/ChangeLog
index c238af65d2d..839e7e52e00 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2012-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * eval.c (Fautoload): Remember previous autoload status in load-history.
+
2012-10-11 Paul Eggert <eggert@cs.ucla.edu>
lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
diff --git a/src/eval.c b/src/eval.c
index 4d200fbc2bd..975204da017 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1876,9 +1876,11 @@ this does nothing and returns nil. */)
CHECK_STRING (file);
/* If function is defined and not as an autoload, don't override. */
- if (!EQ (XSYMBOL (function)->function, Qunbound)
- && !(CONSP (XSYMBOL (function)->function)
- && EQ (XCAR (XSYMBOL (function)->function), Qautoload)))
+ if ((CONSP (XSYMBOL (function)->function)
+ && EQ (XCAR (XSYMBOL (function)->function), Qautoload)))
+ /* Remember that the function was already an autoload. */
+ LOADHIST_ATTACH (Fcons (Qt, function));
+ else if (!EQ (XSYMBOL (function)->function, Qunbound))
return Qnil;
if (NILP (Vpurify_flag))