From: Doug Coleman Date: Sun, 30 Jan 2022 23:52:30 +0000 (-0600) Subject: classes.struct: Don't depend on smart combinators X-Git-Tag: 0.99~1597 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=a3b906157a0a90b2cbc52dc74f012e7352226c28 classes.struct: Don't depend on smart combinators --- diff --git a/basis/classes/struct/struct.factor b/basis/classes/struct/struct.factor index c5930697c2..1c0c08e20a 100644 --- a/basis/classes/struct/struct.factor +++ b/basis/classes/struct/struct.factor @@ -9,12 +9,12 @@ USING: accessors alien alien.c-types alien.data alien.parser arrays assocs byte-arrays classes classes.parser classes.private classes.struct.bit-accessors classes.tuple classes.tuple.parser classes.tuple.private combinators combinators.short-circuit -combinators.smart cpu.architecture definitions delegate.private -effects functors.backend generalizations generic generic.parser -io kernel kernel.private lexer libc math math.order parser -quotations sequences sequences.private slots slots.private -specialized-arrays stack-checker.dependencies summary vectors -vocabs.loader vocabs.parser words ; +cpu.architecture definitions delegate.private effects +functors.backend generalizations generic generic.parser io +kernel kernel.private lexer libc math math.order parser +quotations sequences sequences.generalizations sequences.private +slots slots.private specialized-arrays stack-checker.dependencies +summary vectors vocabs.loader vocabs.parser words ; SPECIALIZED-ARRAY: uchar @@ -193,7 +193,8 @@ M: struct-c-type base-type ; : struct-slot-values-quot ( class -- quot ) struct-slots [ name>> reader-word 1quotation ] map - '[ _ cleave>array ] ; + [ name>> reader-word 1quotation ] map dup length + '[ _ cleave _ narray ] ; : define-struct-slot-values-method ( class -- ) [ \ struct-slot-values ] [ struct-slot-values-quot ] bi