(do_autoload): Preserve match data.
This commit is contained in:
parent
abc9d9597c
commit
f87740dccb
1 changed files with 6 additions and 3 deletions
|
@ -1649,12 +1649,15 @@ do_autoload (fundef, funname)
|
|||
CHECK_SYMBOL (funname, 0);
|
||||
GCPRO3 (fun, funname, fundef);
|
||||
|
||||
/* Value saved here is to be restored into Vautoload_queue */
|
||||
/* Preserve the match data. */
|
||||
record_unwind_protect (Fset_match_data, Fmatch_data (Qnil, Qnil));
|
||||
|
||||
/* 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, noninteractive ? Qt : Qnil, Qnil, Qt);
|
||||
|
||||
/* Save the old autoloads, in case we ever do an unload. */
|
||||
/* Save the old autoloads, in case we ever do an unload. */
|
||||
queue = Vautoload_queue;
|
||||
while (CONSP (queue))
|
||||
{
|
||||
|
@ -1664,7 +1667,7 @@ do_autoload (fundef, funname)
|
|||
|
||||
/* Note: This test is subtle. The cdr of an autoload-queue entry
|
||||
may be an atom if the autoload entry was generated by a defalias
|
||||
or fset. */
|
||||
or fset. */
|
||||
if (CONSP (second))
|
||||
Fput (first, Qautoload, (Fcdr (second)));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue