1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

* lisp/emacs-lisp/bindat.el (sint): Burp in dynbind (bug#69749)

This commit is contained in:
Stefan Monnier 2024-03-15 12:45:09 -04:00
parent 0055362855
commit 7231a89524

View File

@ -944,9 +944,13 @@ a bindat type expression."
(bindat-defmacro sint (bitlen le)
"Signed integer of size BITLEN.
Big-endian if LE is nil and little-endian if not."
(unless lexical-binding
(error "The `sint' type requires 'lexical-binding'"))
(let ((bl (make-symbol "bitlen"))
(max (make-symbol "max"))
(wrap (make-symbol "wrap")))
;; FIXME: This `let*' around the `struct' results in code which the
;; byte-compiler does not handle efficiently. 🙁
`(let* ((,bl ,bitlen)
(,max (ash 1 (1- ,bl)))
(,wrap (+ ,max ,max)))