diff src/eval.c @ 85688:b210bba3f477

Merge from emacs--rel--22 Patches applied: * emacs--rel--22 (patch 131-137) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 261-262) - Update from CVS Revision: emacs@sv.gnu.org/emacs--devo--0--patch-908
author Miles Bader <miles@gnu.org>
date Sat, 27 Oct 2007 09:07:17 +0000
parents a89507976418 f19edd342e7b
children 0ec5ce87b9e0 4bc33ffdda1a
line wrap: on
line diff
--- a/src/eval.c	Sat Oct 27 00:25:43 2007 +0000
+++ b/src/eval.c	Sat Oct 27 09:07:17 2007 +0000
@@ -2194,7 +2194,14 @@
   /* Preserve the match data.  */
   record_unwind_save_match_data ();
 
-  /* Value saved here is to be restored into Vautoload_queue.  */
+  /* If autoloading gets an error (which includes the error of failing
+     to define the function being called), we use Vautoload_queue
+     to undo function definitions and `provide' calls made by
+     the function.  We do this in the specific case of autoloading
+     because autoloading is not an explicit request "load this file",
+     but rather a request to "call this function".
+     
+     The value saved here is to be restored into Vautoload_queue.  */
   record_unwind_protect (un_autoload, Vautoload_queue);
   Vautoload_queue = Qt;
   Fload (Fcar (Fcdr (fundef)), Qnil, Qt, Qnil, Qt);