Revision: 7429
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7429&view=rev
Author:   hofman
Date:     2011-08-14 10:25:58 +0000 (Sun, 14 Aug 2011)

Log Message:
-----------
don't cache chewable items directory, as it may be removed

Modified Paths:
--------------
    trunk/NSFileManager_SKExtensions.m

Modified: trunk/NSFileManager_SKExtensions.m
===================================================================
--- trunk/NSFileManager_SKExtensions.m  2011-08-14 08:50:06 UTC (rev 7428)
+++ trunk/NSFileManager_SKExtensions.m  2011-08-14 10:25:58 UTC (rev 7429)
@@ -106,40 +106,38 @@
 
 NSString *SKChewableItemsDirectory() {
     // chewable items are automatically cleaned up at restart, and it's hidden 
from the user
-    static NSString *chewableItemsDirectory = nil;
-    if (chewableItemsDirectory == nil) {
-        FSRef chewableRef;
-        OSErr err = FSFindFolder(kUserDomain, kChewableItemsFolderType, TRUE, 
&chewableRef);
+    NSString *chewableItemsDirectory = nil;
+    FSRef chewableRef;
+    OSErr err = FSFindFolder(kUserDomain, kChewableItemsFolderType, TRUE, 
&chewableRef);
+    
+    CFAllocatorRef alloc = CFAllocatorGetDefault();
+    CFURLRef chewableURL = NULL;
+    if (noErr == err) {
+        chewableURL = CFURLCreateFromFSRef(alloc, &chewableRef);
         
-        CFAllocatorRef alloc = CFAllocatorGetDefault();
-        CFURLRef chewableURL = NULL;
-        if (noErr == err) {
-            chewableURL = CFURLCreateFromFSRef(alloc, &chewableRef);
-            
-            CFStringRef baseName = 
CFStringCreateWithFileSystemRepresentation(alloc, "Skim");
-            CFURLRef newURL = CFURLCreateCopyAppendingPathComponent(alloc, 
chewableURL, baseName, TRUE);
-            FSRef newRef;
-            
-            if (chewableURL) CFRelease(chewableURL);
-            
-            assert(NULL != newURL);
-            
-            if (CFURLGetFSRef(newURL, &newRef) == false) {
-                CFIndex nameLength = CFStringGetLength(baseName);
-                UniChar *nameBuf = CFAllocatorAllocate(alloc, nameLength * 
sizeof(UniChar), 0);
-                CFStringGetCharacters(baseName, CFRangeMake(0, nameLength), 
nameBuf);
-                err = FSCreateDirectoryUnicode(&chewableRef, nameLength, 
nameBuf, kFSCatInfoNone, NULL, NULL, NULL, NULL);
-                CFAllocatorDeallocate(alloc, nameBuf);
-            }
-            
-            if (noErr == err)
-                chewableItemsDirectory = (NSString 
*)CFURLCopyFileSystemPath(newURL, kCFURLPOSIXPathStyle);
-            
-            if (newURL) CFRelease(newURL);
-            if (baseName) CFRelease(baseName);
-            
-            assert(nil != chewableItemsDirectory);
+        CFStringRef baseName = 
CFStringCreateWithFileSystemRepresentation(alloc, "Skim");
+        CFURLRef newURL = CFURLCreateCopyAppendingPathComponent(alloc, 
chewableURL, baseName, TRUE);
+        FSRef newRef;
+        
+        if (chewableURL) CFRelease(chewableURL);
+        
+        assert(NULL != newURL);
+        
+        if (CFURLGetFSRef(newURL, &newRef) == false) {
+            CFIndex nameLength = CFStringGetLength(baseName);
+            UniChar *nameBuf = CFAllocatorAllocate(alloc, nameLength * 
sizeof(UniChar), 0);
+            CFStringGetCharacters(baseName, CFRangeMake(0, nameLength), 
nameBuf);
+            err = FSCreateDirectoryUnicode(&chewableRef, nameLength, nameBuf, 
kFSCatInfoNone, NULL, NULL, NULL, NULL);
+            CFAllocatorDeallocate(alloc, nameBuf);
         }
+        
+        if (noErr == err)
+            chewableItemsDirectory = (NSString 
*)CFURLCopyFileSystemPath(newURL, kCFURLPOSIXPathStyle);
+        
+        if (newURL) CFRelease(newURL);
+        if (baseName) CFRelease(baseName);
+        
+        assert(nil != chewableItemsDirectory);
     }
     return chewableItemsDirectory;
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
FREE DOWNLOAD - uberSVN with Social Coding for Subversion.
Subversion made easy with a complete admin console. Easy 
to use, easy to manage, easy to install, easy to extend. 
Get a Free download of the new open ALM Subversion platform now.
http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to