]> gitweb.factorcode.org Git - factor.git/commitdiff
classes.struct: Don't depend on smart combinators
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 30 Jan 2022 23:52:30 +0000 (17:52 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Sun, 30 Jan 2022 23:52:30 +0000 (17:52 -0600)
basis/classes/struct/struct.factor

index c5930697c262262eb0b539a72da3af35d214dee7..1c0c08e20aa4171366099a4a60fc09ff1da55256 100644 (file)
@@ -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