Fix #1278
Refactors :after-call to not fmakunbound the transient hook function, as it may get executed multiple times before getting a chance to fully remove itself, causing void-function errors.
This commit is contained in:
parent
a934ade46e
commit
d7e9b47266
1 changed files with 9 additions and 9 deletions
|
@ -248,17 +248,17 @@ non-nil, return paths of possible modules, activated or otherwise."
|
|||
`((fset ',fn
|
||||
(lambda (&rest _)
|
||||
(doom-log "Loading deferred package %s from %s" ',name ',fn)
|
||||
(condition-case e (require ',name)
|
||||
(condition-case e
|
||||
(require ',name)
|
||||
((debug error)
|
||||
(message "Failed to load deferred package %s: %s" ',name e)))
|
||||
(dolist (hook (cdr (assq ',name doom--deferred-packages-alist)))
|
||||
(when-let* ((deferral-list (assq ',name doom--deferred-packages-alist)))
|
||||
(dolist (hook (cdr deferral-list))
|
||||
(if (functionp hook)
|
||||
(advice-remove hook #',fn)
|
||||
(remove-hook hook #',fn)))
|
||||
(setq doom--deferred-packages-alist
|
||||
(delq (assq ',name doom--deferred-packages-alist)
|
||||
doom--deferred-packages-alist))
|
||||
(fmakunbound ',fn))))
|
||||
(delq deferral-list doom--deferred-packages-alist))))))
|
||||
(let (forms)
|
||||
(dolist (hook hooks forms)
|
||||
(push (if (functionp hook)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue