1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

Fix disassembly of free variable lists.

* module/language/assembly/disassemble.scm (disassemble-free-vars):
  Handle FREE-VARS as a list, not a vector.
This commit is contained in:
Ludovic Courtès 2010-05-22 23:54:16 +02:00
parent 25f4cd87c2
commit 96640816c8

View file

@ -20,6 +20,7 @@
(define-module (language assembly disassemble) (define-module (language assembly disassemble)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:use-module (srfi srfi-1)
#:use-module (system vm instruction) #:use-module (system vm instruction)
#:use-module (system vm program) #:use-module (system vm program)
#:use-module (system base pmatch) #:use-module (system base pmatch)
@ -90,10 +91,11 @@
(define (disassemble-free-vars free-vars) (define (disassemble-free-vars free-vars)
(display "Free variables:\n\n") (display "Free variables:\n\n")
(let lp ((i 0)) (fold (lambda (free-var i)
(cond ((< i (vector-length free-vars)) (print-info i free-var #f #f)
(print-info i (vector-ref free-vars i) #f #f) (+ 1 i))
(lp (1+ i)))))) 0
free-vars))
(define-macro (unless test . body) (define-macro (unless test . body)
`(if (not ,test) (begin ,@body))) `(if (not ,test) (begin ,@body)))