diff options
author | Andy Wingo <wingo@pobox.com> | 2009-02-01 11:32:07 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-02-01 11:32:07 +0100 |
commit | 8403b9f59bcd10d1b69a1f14e3175c9cf8a786db (patch) | |
tree | 9c96049e0e86b5948a9df7e5adf30887b9f58011 | |
parent | 89bbf355960302175bffb14790adedf0eebb672f (diff) | |
download | guile-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.scm | 3 |
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) |