! 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: 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