Revision: 28549
http://sourceforge.net/p/bibdesk/svn/28549
Author: hofman
Date: 2024-01-05 10:49:27 +0000 (Fri, 05 Jan 2024)
Log Message:
-----------
use objc methods or CFBridgingRelease for URLs
Modified Paths:
--------------
trunk/bibdesk/BDSKLinkedFile.m
Modified: trunk/bibdesk/BDSKLinkedFile.m
===================================================================
--- trunk/bibdesk/BDSKLinkedFile.m 2024-01-05 10:23:18 UTC (rev 28548)
+++ trunk/bibdesk/BDSKLinkedFile.m 2024-01-05 10:49:27 UTC (rev 28549)
@@ -53,9 +53,9 @@
#define BOOKMARK_KEY @"bookmark"
#define RELATIVEPATH_KEY @"relativePath"
-static NSURL *BDSKCreateURLFromFSRef(const FSRef *inRef);
+static NSURL *BDSKURLFromFSRef(const FSRef *inRef);
static BOOL BDSKPathToFSRef(NSString *inPath, FSRef *outRef);
-static NSData *BDSKCreateBookmarkDataFromURL(NSURL *aURL);
+static NSData *BDSKBookmarkDataFromURL(NSURL *aURL);
static NSDictionary *BDSKDictionaryFromPlistData(NSData *data);
static NSDictionary *BDSKDictionaryFromArchivedData(NSData *data);
@@ -667,7 +667,7 @@
}
if ((shouldUpdate || fileURL == nil) && fileRef != nil) {
- NSURL *aURL = BDSKCreateURLFromFSRef(fileRef);
+ NSURL *aURL = BDSKURLFromFSRef(fileRef);
if (aURL != nil) {
if (fileURL == nil)
fileURL = [aURL retain];
@@ -675,7 +675,6 @@
[self updateAliasWithBaseRef:&baseRef];
[self setRelativePath:[aURL path] fromPath:basePath];
}
- [aURL release];
}
}
}
@@ -685,7 +684,7 @@
NSURL *aURL = nil;
if (fileRef != nil) {
- aURL = BDSKCreateURLFromFSRef(fileRef);
+ aURL = BDSKURLFromFSRef(fileRef);
if (aURL == nil)
// fileRef was invalid, try to update it
BDSKFREEDESTROY(fileRef);
@@ -693,7 +692,7 @@
if (aURL == nil) {
// fileRef was nil or invalid
[self updateFileRef];
- aURL = BDSKCreateURLFromFSRef(fileRef);
+ aURL = BDSKURLFromFSRef(fileRef);
}
if ([aURL isEqual:fileURL] == NO && (aURL != nil || hadFileURL)) {
@@ -702,8 +701,7 @@
// the file was replaced, reference the replacement rather than
the moved file
// this is what Dropbox does with file updates
[self setFileRef:&aRef];
- [aURL release];
- aURL =BDSKCreateURLFromFSRef(fileRef);
+ aURL = BDSKURLFromFSRef(fileRef);
NSString *basePath = [delegate basePathForLinkedFile:self];
FSRef baseRef;
if (BDSKPathToFSRef(basePath, &baseRef)) {
@@ -713,7 +711,6 @@
}
[self setFileURL:aURL];
}
- [aURL release];
}
- (void)setAliasWithPath:(NSString *)aPath basePath:(NSString *)basePath {
@@ -741,7 +738,7 @@
// this does the updating if possible
[self updateFileRef];
} else {
- NSURL *aURL = BDSKCreateURLFromFSRef(fileRef);
+ NSURL *aURL = BDSKURLFromFSRef(fileRef);
if (aURL != nil) {
// if the path has changed, updating will be done below
if (basePath && (aPath == nil || [[aURL path]
isEqualToString:aPath])) {
@@ -751,7 +748,6 @@
[self setRelativePath:[aURL path] fromPath:basePath];
}
}
- [aURL release];
} else {
// the fileRef was invalid, reset it and update
BDSKFREEDESTROY(fileRef);
@@ -770,7 +766,7 @@
BOOL needsUpdate = YES;
FSRef aRef;
if (BDSKPathToFSRef(aPath, &aRef)) {
- NSURL *aURL = BDSKCreateURLFromFSRef(&aRef);
+ NSURL *aURL = BDSKURLFromFSRef(&aRef);
if ([path isEqualToString:[aURL path]]) {
needsUpdate = NO;
} else {
@@ -777,7 +773,6 @@
[self setFileRef:&aRef];
[self setFileURL:aURL];
}
- [aURL release];
}
if (needsUpdate) {
FSRef baseRef;
@@ -841,9 +836,8 @@
NSString *basePath = [aDelegate basePathForLinkedFile:self];
NSString *relPath = basePath ? [aPath relativePathFromPath:basePath] : nil;
- id anAlias = BDSKCreateBookmarkDataFromURL(aURL);
+ id anAlias = BDSKBookmarkDataFromURL(aURL);
self = [self initWithAlias:anAlias relativePath:relPath
delegate:aDelegate];
- [anAlias release];
if (self && basePath)
[self updateFileURL];
return self;
@@ -861,7 +855,7 @@
NSURL *refURL = nil;
if (fileURL) {
- refURL = (NSURL *)CFURLCreateFileReferenceURL(kCFAllocatorDefault,
(__bridge CFURLRef)fileURL, NULL);
+ refURL = [fileURL fileReferenceURL];
if (refURL == nil) {
// fileURL was invalid, try to update it
@@ -869,7 +863,7 @@
} else if ([fileRefURL isEqual:refURL] == NO) {
// file was replaced
[fileRefURL release];
- fileRefURL = refURL;
+ fileRefURL = [refURL retain];
hasSkimNotesNeedsUpdate = YES;
if (isInitial)
[delegate linkedFileURLChanged:self];
@@ -876,7 +870,7 @@
basePath = [delegate basePathForLinkedFile:self];
shouldUpdate = YES;
} else {
- BDSKDESTROY(refURL);
+ refURL = nil;
if (relativePath == nil) {
basePath = [delegate basePathForLinkedFile:self];
shouldUpdate = YES;
@@ -887,7 +881,7 @@
if (fileURL == nil) {
if (fileRefURL) {
- aURL = (NSURL *)CFURLCreateFilePathURL(kCFAllocatorDefault,
(__bridge CFURLRef)fileRefURL, NULL);
+ aURL = [fileRefURL filePathURL];
shouldUpdate = aURL != nil;
}
@@ -895,22 +889,22 @@
if (aURL == nil && basePath && relativePath) {
aURL = [[NSURL alloc] initFileURLWithPath:[relativePath
isAbsolutePath] ? relativePath : [basePath
stringByAppendingPathComponent:relativePath] isDirectory:NO];
- refURL = (NSURL *)CFURLCreateFileReferenceURL(kCFAllocatorDefault,
(__bridge CFURLRef)aURL, NULL);
+ refURL = [aURL fileReferenceURL];
shouldUpdate = refURL != nil;
}
if (refURL == nil && [alias isKindOfClass:[NSData class]]) {
- aURL = [[NSURL alloc] initByResolvingBookmarkData:alias
options:NSURLBookmarkResolutionWithoutUI |
NSURLBookmarkResolutionWithoutMounting relativeToURL:nil
bookmarkDataIsStale:&shouldUpdate error:NULL];
+ aURL = [[[NSURL alloc] initByResolvingBookmarkData:alias
options:NSURLBookmarkResolutionWithoutUI |
NSURLBookmarkResolutionWithoutMounting relativeToURL:nil
bookmarkDataIsStale:&shouldUpdate error:NULL] autorelease];
if (aURL)
- refURL = (NSURL
*)CFURLCreateFileReferenceURL(kCFAllocatorDefault, (__bridge CFURLRef)aURL,
NULL);
+ refURL = [aURL fileReferenceURL];
shouldUpdate = shouldUpdate && aURL != nil;
} else if (aURL == nil && [alias isKindOfClass:[BDSKAlias class]]) {
FSRef aRef, baseRef;
BOOL ignored, hasBaseRef = BDSKPathToFSRef(basePath, &baseRef);
if ([alias getFSRef:&aRef baseRef:hasBaseRef ? &baseRef : NULL
shouldUpdate:&ignored]){
- aURL = BDSKCreateURLFromFSRef(&aRef);
+ aURL = BDSKURLFromFSRef(&aRef);
if (aURL)
- refURL = (NSURL
*)CFURLCreateFileReferenceURL(kCFAllocatorDefault, (__bridge CFURLRef)aURL,
NULL);
+ refURL = [aURL fileReferenceURL];
}
shouldUpdate = aURL != nil;
}
@@ -919,9 +913,8 @@
[self setFileURL:aURL];
if (refURL) {
[fileRefURL release];
- fileRefURL = refURL;
+ fileRefURL = [refURL retain];
}
- [aURL release];
} else {
BDSKDESTROY(fileRefURL);
}
@@ -928,10 +921,10 @@
}
if (shouldUpdate) {
- NSData *data = BDSKCreateBookmarkDataFromURL(fileURL ?: [fileRefURL
filePathURL]);
+ NSData *data = BDSKBookmarkDataFromURL(fileURL ?: [fileRefURL
filePathURL]);
if (data) {
[alias release];
- alias = data;
+ alias = [data retain];
}
if (basePath)
[self setRelativePath:[fileURL path] fromPath:basePath];
@@ -949,24 +942,23 @@
if ([path isEqualToString:aPath] == NO) {
// this can happen when auto filing to a different volume, which
copies the file
BOOL needsUpdate = YES;
- CFURLRef refURL = CFURLCreateFileReferenceURL(kCFAllocatorDefault,
(__bridge CFURLRef)[NSURL fileURLWithPath:aPath], NULL);
+ NSURL *refURL = [[NSURL fileURLWithPath:aPath] fileReferenceURL];
if (refURL) {
- NSURL *aURL = (NSURL
*)CFURLCreateFilePathURL(kCFAllocatorDefault, refURL, NULL);
+ NSURL *aURL = [refURL filePathURL];
if ([path isEqualToString:[aURL path]]) {
- CFRelease(refURL);
+ refURL = nil;
needsUpdate = NO;
} else {
[fileRefURL release];
- fileRefURL = (NSURL *)refURL;
+ fileRefURL = [refURL retain];
[self setFileURL:aURL];
}
- [aURL release];
}
if (needsUpdate) {
- NSData *data = BDSKCreateBookmarkDataFromURL(fileURL ?:
[fileRefURL filePathURL]);
+ NSData *data = BDSKBookmarkDataFromURL(fileURL ?: [fileRefURL
filePathURL]);
if (data) {
[alias release];
- alias = data;
+ alias = [data retain];
}
if (basePath)
[self setRelativePath:aPath fromPath:basePath];
@@ -1007,10 +999,10 @@
NSData *data = nil;
if (fileURL) {
- data = BDSKCreateBookmarkDataFromURL(fileURL);
+ data = [BDSKBookmarkDataFromURL(fileURL) retain];
} else if (relativePath && newBasePath) {
NSURL *aURL = [NSURL fileURLWithPath:[relativePath isAbsolutePath] ?
relativePath : [[newBasePath stringByAppendingPathComponent:relativePath]
stringByStandardizingPath]];
- data = BDSKCreateBookmarkDataFromURL(aURL);
+ data = [BDSKBookmarkDataFromURL(aURL) retain];
}
if (data == nil && [alias isKindOfClass:[NSData class]])
data = [alias copy];
@@ -1101,8 +1093,8 @@
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-static NSURL *BDSKCreateURLFromFSRef(const FSRef *inRef) {
- return inRef == NULL ? NULL : (NSURL *)CFURLCreateFromFSRef(NULL, inRef);
+static NSURL *BDSKURLFromFSRef(const FSRef *inRef) {
+ return inRef == NULL ? NULL : CFBridgingRelease(CFURLCreateFromFSRef(NULL,
inRef));
}
static const FSRef *BDSKBaseRefIfOnSameVolume(const FSRef *inBaseRef, const
FSRef *inRef) {
@@ -1126,12 +1118,12 @@
#pragma clang diagnostic pop
-static NSData *BDSKCreateBookmarkDataFromURL(NSURL *aURL) {
+static NSData *BDSKBookmarkDataFromURL(NSURL *aURL) {
if (aURL == nil)
return nil;
// bookmark data before 10.12 was very large, hopefully that will be
better when saving a minimal bookmark
// for newer OS versions minimal bookmarks do not seem to be smaller,
sometimnes even larger
- return (NSData *)CFURLCreateBookmarkData(kCFAllocatorDefault,
(CFURLRef)aURL, 0, NULL, NULL, NULL);
+ return CFBridgingRelease(CFURLCreateBookmarkData(kCFAllocatorDefault,
(CFURLRef)aURL, 0, NULL, NULL, NULL));
}
static NSDictionary *BDSKDictionaryFromPlistData(NSData *data) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit