summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-01-11 20:45:52 +0100
committerAndy Wingo <wingo@pobox.com>2010-01-11 20:45:52 +0100
commit5a9c6dcbb3bdda159cc45edb9d8b34e7b5043b9e (patch)
treef134dc2de9ec331029bcb0ccac7200aa95a10f48
parent411313403cac04d1b1b1c7f579da32eaaaf4d80d (diff)
downloadguile-5a9c6dcbb3bdda159cc45edb9d8b34e7b5043b9e.tar.gz
fix erroneous compilation of #@2(1 2 3) as #(1 2 3)
* module/language/glil/compile-assembly.scm (dump-object): Fix the vector case to only match 0-indexed, vectors, not arrays like #@2(1 2 3).
-rw-r--r--module/language/glil/compile-assembly.scm5
1 files changed, 3 insertions, 2 deletions
diff --git a/module/language/glil/compile-assembly.scm b/module/language/glil/compile-assembly.scm
index 32c5a9d3a..21ef95975 100644
--- a/module/language/glil/compile-assembly.scm
+++ b/module/language/glil/compile-assembly.scm
@@ -1,6 +1,6 @@
;;; Guile VM assembler
-;; Copyright (C) 2001, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2009, 2010 Free Software Foundation, Inc.
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -558,7 +558,8 @@
`(,@kar
,@(dump-object (cdr x) (addr+ addr kar))
(cons))))
- ((vector? x)
+ ((and (vector? x)
+ (equal? (array-shape x) (list (list 0 (1- (vector-length x))))))
(let* ((len (vector-length x))
(tail (if (>= len 65536)
(too-long "vector")