cs & zo-parse: preserve marshaled bytes

To support `zo-marshal`, keep original byte-string form of linklets.
This commit is contained in:
Matthew Flatt 2020-02-05 17:11:37 -07:00
parent 3b3bc7ce95
commit 41175b7e05

View File

@ -861,11 +861,16 @@
(make-reader-graph (read-compact cp))]
[(equal? vm #"chez-scheme")
(define len (read-simple-number port))
(define bstr (read-bytes len port))
(cond
[(eq? 'chez-scheme (system-type 'vm))
((vm-primitive 'read-linklet-bundle-hash) port)]
(hash-set ((vm-primitive 'read-linklet-bundle-hash)
(open-input-bytes (bytes-append
(integer->integer-bytes len 4 #f #f)
bstr)))
'opaque bstr)]
[else
(define bstr (read-bytes (read-simple-number port) port))
(hash 'opaque bstr)])]
[else
(error 'zo-parse "cannot parse for virtual machine: ~s" vm)]))