Subject: bug#25965: 26.0.50; iter-lambda may evaluate certain forms twice

From: Stefan Monnier <[email-masked]>
Date: Wed, 08 Mar 2017 16:52:13 -0500

> The unwind-protect form is created in this function.
>
> #+BEGIN_SRC emacs-lisp
>   (defun cps--make-dynamic-binding-wrapper (dynamic-var static-var)
>     (cl-assert lexical-binding)
>     (lambda (form)
>       `(let ((,dynamic-var ,static-var))
>          (unwind-protect ; Update the static shadow after evaluation is done
>               ,form
>            (setf ,static-var ,dynamic-var))
>          ,form)))
> #+END_SRC
>
> And it seems to me that the second occurrence of ,form is just an
> error.

Hmm... indeed that looks odd, and maybe just removing the second ,form
is the right fix.  Daniel, do you happen to remember what the second
,form above is meant to do?

        Stefan