From 23bbceb759ee7f5b1b21efdf1a8a1edc208c053c Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 12 Mar 2019 02:27:38 -0700 Subject: [PATCH] closer --- xenomorph/xenomorph/versioned-struct.rkt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/xenomorph/xenomorph/versioned-struct.rkt b/xenomorph/xenomorph/versioned-struct.rkt index 0976fce1..7ccf969e 100644 --- a/xenomorph/xenomorph/versioned-struct.rkt +++ b/xenomorph/xenomorph/versioned-struct.rkt @@ -83,11 +83,13 @@ https://github.com/mbutterick/restructure/blob/master/src/VersionedStruct.coffee #R (list key 'in-verseioned-struct) (send type encode (dict-ref field-data key) port parent)) #R (list 'broccoli (length (dict-ref parent x:pointers-key))) - (for ([(ptr i) (in-indexed #R (dict-ref parent x:pointers-key))]) - #R 'all-the-marbles - #R i - (match ptr - [(x:ptr type val parent) #R i (send type encode val port parent)]))) + (let loop ([i 0]) + (when (< i (length (dict-ref parent x:pointers-key))) + (define ptr (list-ref (dict-ref parent x:pointers-key) i)) + #R 'all-the-marbles + (match ptr + [(x:ptr type val parent) #R i (send type encode val port parent)]) + (loop (add1 i))))) (define/override (size [val-arg #f] [parent-arg #f] [include-pointers #t]) (unless val-arg