summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-02-01 11:32:07 +0100
committerAndy Wingo <wingo@pobox.com>2009-02-01 11:32:07 +0100
commit8403b9f59bcd10d1b69a1f14e3175c9cf8a786db (patch)
tree9c96049e0e86b5948a9df7e5adf30887b9f58011
parent89bbf355960302175bffb14790adedf0eebb672f (diff)
downloadguile-8403b9f59bcd10d1b69a1f14e3175c9cf8a786db.tar.gz
fix the disassembler for load-string, load-symbol et al
* module/language/assembly/decompile-bytecode.scm (decode-bytecode): Fix decoding of lengths in loader instructions.
-rw-r--r--module/language/assembly/decompile-bytecode.scm3
1 files changed, 2 insertions, 1 deletions
diff --git a/module/language/assembly/decompile-bytecode.scm b/module/language/assembly/decompile-bytecode.scm
index abfc561fa..d5ffae189 100644
--- a/module/language/assembly/decompile-bytecode.scm
+++ b/module/language/assembly/decompile-bytecode.scm
@@ -73,7 +73,8 @@
((eq? inst 'load-program)
(decode-load-program pop))
((< (instruction-length inst) 0)
- (let* ((len (decode-length pop))
+ (let* ((len (let* ((a (pop)) (b (pop)) (c (pop)))
+ (+ (ash a 16) (ash b 8) c)))
(str (make-string len)))
(let lp ((i 0))
(if (= i len)