Fix disassembly of free variable lists.
authorLudovic Courtès <ludo@gnu.org>
Sat, 22 May 2010 21:54:16 +0000 (23:54 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sat, 22 May 2010 21:54:16 +0000 (23:54 +0200)
* module/language/assembly/disassemble.scm (disassemble-free-vars):
  Handle FREE-VARS as a list, not a vector.

module/language/assembly/disassemble.scm

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