cocoa.plists: use new NSFastEnumeration>hashtable word.
							parent
							
								
									116086ddf7
								
							
						
					
					
						commit
						e137cde7f8
					
				| 
						 | 
				
			
			@ -1,7 +1,8 @@
 | 
			
		|||
! Copyright (C) 2008 Joe Groff.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: accessors kernel classes.struct cocoa cocoa.runtime cocoa.types alien.data
 | 
			
		||||
locals math sequences vectors fry libc destructors specialized-arrays ;
 | 
			
		||||
USING: accessors alien.data assocs classes.struct cocoa
 | 
			
		||||
cocoa.runtime cocoa.types destructors fry hashtables kernel libc
 | 
			
		||||
locals sequences specialized-arrays vectors ;
 | 
			
		||||
SPECIALIZED-ARRAY: id
 | 
			
		||||
IN: cocoa.enumeration
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -32,3 +33,7 @@ CONSTANT: NS-EACH-BUFFER-SIZE 16
 | 
			
		|||
 | 
			
		||||
: NSFastEnumeration>vector ( object -- vector )
 | 
			
		||||
    [ ] NSFastEnumeration-map ;
 | 
			
		||||
 | 
			
		||||
: NSFastEnumeration>hashtable ( ... object quot: ( ... elt -- ... key value ) -- ... vector )
 | 
			
		||||
    NS-EACH-BUFFER-SIZE <hashtable>
 | 
			
		||||
    [ '[ @ swap _ set-at ] NSFastEnumeration-each ] keep ; inline
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,8 +30,8 @@ DEFER: plist>
 | 
			
		|||
    [ plist> ] NSFastEnumeration-map ;
 | 
			
		||||
 | 
			
		||||
: (plist-NSDictionary>) ( NSDictionary -- hashtable )
 | 
			
		||||
    dup [ [ nip ] [ -> valueForKey: ] 2bi [ plist> ] bi@ 2array ] with
 | 
			
		||||
    NSFastEnumeration-map >hashtable ;
 | 
			
		||||
    dup [ [ nip ] [ -> valueForKey: ] 2bi [ plist> ] bi@ ] with
 | 
			
		||||
    NSFastEnumeration>hashtable ;
 | 
			
		||||
 | 
			
		||||
: (read-plist) ( NSData -- id )
 | 
			
		||||
    NSPropertyListSerialization swap kCFPropertyListImmutable f
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue