emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 8e05e02 070/187: Prevent accidental creation of lexical cl


From: Michael Albinus
Subject: [elpa] master 8e05e02 070/187: Prevent accidental creation of lexical closures.
Date: Wed, 30 Dec 2015 11:49:45 +0000

branch: master
commit 8e05e0208cb91d44c4e10ac6f9532d3cfcd04fe9
Author: Ryan C. Thompson <address@hidden>
Commit: Ryan C. Thompson <address@hidden>

    Prevent accidental creation of lexical closures.
    
    Fixes #17. (Try async-test-7)
---
 async.el |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/async.el b/async.el
index 4c79816..8f893b9 100644
--- a/async.el
+++ b/async.el
@@ -260,8 +260,11 @@ passed to FINISH-FUNC).  Call `async-get' on such a future 
always
 returns nil.  It can still be useful, however, as an argument to
 `async-ready' or `async-wait'."
   (require 'find-func)
-  (let ((procvar (make-symbol "proc")))
-    `(let* ((sexp ,start-func)
+  (let ((procvar (make-symbol "proc"))
+        ;; Avoid accidental lexical closures by evaluating START-FUNC
+        ;; in an empty lexical environment.
+        (start-func (eval start-func t)))
+    `(let* ((sexp #',start-func)
             (,procvar
              (async-start-process
               "emacs" (file-truename



reply via email to

[Prev in Thread] Current Thread [Next in Thread]