]> gitweb.factorcode.org Git - factor.git/commitdiff
windows.directx.dinput: factor out a code snippet into a word instead of repeating...
authorSlava Pestov <slava@factorcode.org>
Tue, 4 May 2010 09:54:48 +0000 (04:54 -0500)
committerSlava Pestov <slava@factorcode.org>
Tue, 4 May 2010 09:56:38 +0000 (04:56 -0500)
basis/windows/directx/dinput/constants/constants.factor

index 98ea261d38b49a983005755d363dbcb5f86365f8..c77364ccde17334fdfc245733d53ab2904aef9bb 100755 (executable)
@@ -56,14 +56,17 @@ M: array array-base-type first ;
         [ first dup word? [ '[ _ get ] ] [ drop [ f ] ] if ]
     } cleave
     [ DIOBJECTDATAFORMAT <struct-boa> ] dip
-    '[ _ clone @ >>pguid ] ;
+    curry ;
+
+: set-DIOBJECTDATAFORMAT ( array struct pguid n -- array )
+    [ [ clone ] dip >>pguid ] dip pick set-nth ;
 
 :: make-DIOBJECTDATAFORMAT-array-quot ( struct array -- quot )
     array length '[ _ malloc-DIOBJECTDATAFORMAT-array ]
     array [| args i |
         struct args <DIOBJECTDATAFORMAT>-quot
-        i '[ _ pick set-nth ] compose compose
-    ] each-index ;
+        i '[ @ _ set-DIOBJECTDATAFORMAT ]
+    ] map-index [ ] join compose ;
 
 >>