So it looks like the QuickLook framework has some bugs with Garbage Collection
required.
I contacted Apple tech support and they confirmed this is "likely a bug in the
Quick Look framework" and asked me to file a bug report. Too bad this cost me
one of my free tech support chits.
In the mean time I'm incorporating QL this way:
NSString *paths = @"";
for (NSString *thisPath in srcPathArray) {
NSString *s = @"";
if ([paths length] == 0) {
s = [NSString stringWithFormat:@"(quoted form of (POSIX
path of \"%@\"))", thisPath];
} else {
s = [NSString stringWithFormat:@" & \" \" & (quoted
form of (POSIX path of \"%@\"))", thisPath];
}
paths = [paths stringByAppendingString:s];
}
NSAppleScript *quickLook = nil;
// do shell script ("qlmanage -p " & (quoted form of (POSIX path of
srcPath)))
NSString *command = [NSString stringWithFormat:@"do shell script
(\"qlmanage -p \" & %@)",paths];
quickLook = [[NSAppleScript alloc] initWithSource:command];
[quickLook executeAndReturnError:nil];
On May 3, 2011, at 9:09 PM, Brad Stone wrote:
> Interesting, OK, now remember, t this is new to me.
>
> To begin the QL panel I run this required method:
> - (void)beginPreviewPanelControl:(QLPreviewPanel *)panel
> {
> previewPanel = [panel retain];
> panel.delegate = self;
> panel.dataSource = self;
> }
>
> and then it ends with
>
> - (void)endPreviewPanelControl:(QLPreviewPanel *)panel
> {
> [previewPanel release];
> previewPanel = nil;
> }
>
> Where QLPreviewPanel* previewPanel; is defined in my header file.
>
> The crash happens after the begin and never gets to the end.
>
> I see here
> http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/GarbageCollection/Articles/gcCoreFoundation.html
> that to "ensure the longevity of Objective-C objects, you should use
> CFRetain instead of retain".
>
> I haven't been able to find the correct syntax to replace the retain/release
> with CFRetain/CFRelease
>
> On May 3, 2011, at 7:51 PM, Wim Lewis wrote:
>
>>
>> On 3 May 2011, at 4:03 PM, Brad Stone wrote:
>>> I have a symbolic breakpoint set and it stops on
>>> auto_refcount_underflow_error, even the small files. If I continue the doc
>>> shows in QL.
>>
>> Presumably, a few stack frames up, there will be a call to CFRelease() which
>> is causing the underflow (what would be an over-released zombie in a non-GC
>> app).
>>
>> The first thing I'd look for is using CFRelease() when you should call
>> -release (or vise versa, and the same for retain): code written pre-GC would
>> treat those as equivalent, but in a GC or optional-GC world they need to be
>> treated as operating on distinct kinds of refcount.
>>
>>
>
> _______________________________________________
>
> Cocoa-dev mailing list ([email protected])
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/cocoa-dev%40softraph.com
>
> This email sent to [email protected]
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]