From 852e00c57ad221bf1f55a895454264c7f22d8165 Mon Sep 17 00:00:00 2001 From: "U-SLAVA-DFB8FF805\\Slava" Date: Wed, 3 Dec 2008 09:55:11 -0600 Subject: [PATCH] Update windows.dinput for specialized-arrays --- basis/windows/dinput/constants/constants.factor | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) mode change 100644 => 100755 basis/windows/dinput/constants/constants.factor diff --git a/basis/windows/dinput/constants/constants.factor b/basis/windows/dinput/constants/constants.factor old mode 100644 new mode 100755 index 182c17430f..e3bec6d7ac --- a/basis/windows/dinput/constants/constants.factor +++ b/basis/windows/dinput/constants/constants.factor @@ -1,7 +1,8 @@ USING: windows.dinput windows.kernel32 windows.ole32 windows.com windows.com.syntax alien alien.c-types alien.syntax kernel system namespaces combinators sequences symbols fry math accessors macros words quotations -libc continuations generalizations splitting locals assocs init ; +libc continuations generalizations splitting locals assocs init +struct-arrays ; IN: windows.dinput.constants ! Some global variables aren't provided by the DirectInput DLL (they're in the @@ -52,14 +53,14 @@ SYMBOLS: } cleave "DIOBJECTDATAFORMAT" (DIOBJECTDATAFORMAT) ; -: malloc-DIOBJECTDATAFORMAT-array ( struct array -- alien ) - [ nip length "DIOBJECTDATAFORMAT" malloc-array dup ] - [ - -rot [| args i alien struct | +:: malloc-DIOBJECTDATAFORMAT-array ( struct array -- alien ) + [let | alien [ array length "DIOBJECTDATAFORMAT" malloc-struct-array ] | + array [| args i | struct args - i alien set-DIOBJECTDATAFORMAT-nth - ] 2curry each-index - ] 2bi ; + i alien set-nth + ] each-index + alien underlying>> + ] ; : (DIDATAFORMAT) ( dwSize dwObjSize dwFlags dwDataSize dwNumObjs rgodf alien -- alien ) [ {