]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/core-foundation/core-foundation.factor
Updating code to use with-out-parameters
[factor.git] / basis / core-foundation / core-foundation.factor
index ec83ba7a8bd5f5f7ba04d4296d09681d7a2ed5e0..0185387597bb11fb2954b2e66ac0cebd899bc5a5 100644 (file)
@@ -1,31 +1,37 @@
 ! Copyright (C) 2006, 2008 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax destructors accessors kernel ;
+USING: alien.syntax alien.c-types alien.destructors accessors classes.struct kernel ;
 IN: core-foundation
 
 TYPEDEF: void* CFTypeRef
 
 TYPEDEF: void* CFAllocatorRef
-: kCFAllocatorDefault f ; inline
+CONSTANT: kCFAllocatorDefault f
 
 TYPEDEF: bool Boolean
 TYPEDEF: long CFIndex
-TYPEDEF: int SInt32
+TYPEDEF: uchar UInt8
+TYPEDEF: ushort UInt16
 TYPEDEF: uint UInt32
+TYPEDEF: ulonglong UInt64
+TYPEDEF: char SInt8
+TYPEDEF: short SInt16
+TYPEDEF: int SInt32
+TYPEDEF: longlong SInt64
 TYPEDEF: ulong CFTypeID
 TYPEDEF: UInt32 CFOptionFlags
 TYPEDEF: void* CFUUIDRef
 
-FUNCTION: CFTypeRef CFRetain ( CFTypeRef cf ) ;
+STRUCT: CFRange
+    { location CFIndex }
+    { length CFIndex } ;
 
-FUNCTION: void CFRelease ( CFTypeRef cf ) ;
+: <CFRange> ( location length -- range )
+    CFRange <struct-boa> ;
 
-TUPLE: CFRelease-destructor alien disposed ;
+FUNCTION: CFTypeRef CFRetain ( CFTypeRef cf ) ;
 
-M: CFRelease-destructor dispose* alien>> CFRelease ;
+FUNCTION: void CFRelease ( CFTypeRef cf ) ;
 
-: &CFRelease ( alien -- alien )
-    dup f CFRelease-destructor boa &dispose drop ; inline
+DESTRUCTOR: CFRelease
 
-: |CFRelease ( alien -- alien )
-    dup f CFRelease-destructor boa |dispose drop ; inline