/**
- * \file LinkBackProxy.mm
+ * \file LinkBackProxy.m
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
NSMutableDictionary * linkBackDataDict
= [NSUnarchiver unarchiveObjectWithData:linkBackData];
if (linkBackDataDict == nil) {
- NSLog(@"LinkBack data in %@ corrupted");
+ NSLog(@"LinkBack data in %@ corrupted", fileName);
return NO;
}
static LyXLinkBackClient * linkBackClient = nil;
+void checkAutoReleasePool()
+{
+ if (pool == nil)
+ pool = [[NSAutoreleasePool alloc] init];
+}
+
int isLinkBackDataInPasteboard()
{
- NSArray * linkBackType = [NSArray arrayWithObjects: LinkBackPboardType, nil];
- NSString * ret = [[NSPasteboard generalPasteboard] availableTypeFromArray:linkBackType];
- return ret != nil;
+ checkAutoReleasePool() ;
+ {
+ NSArray * linkBackType = [NSArray arrayWithObjects: LinkBackPboardType, nil];
+ NSString * ret = [[NSPasteboard generalPasteboard] availableTypeFromArray:linkBackType];
+ return ret != nil;
+ }
}
-
+
void getLinkBackData(void const * * buf, unsigned * len)
{
- // get linkback data from pasteboard
- NSPasteboard * pboard = [NSPasteboard generalPasteboard];
- id linkBackData = [pboard propertyListForType:LinkBackPboardType];
-
- NSData * nsdata
- = [NSArchiver archivedDataWithRootObject:linkBackData];
- if (nsdata == nil) {
- *buf = 0;
- *len = 0;
- return;
- }
+ checkAutoReleasePool() ;
+ {
+ // get linkback data from pasteboard
+ NSPasteboard * pboard = [NSPasteboard generalPasteboard];
+ id linkBackData = [pboard propertyListForType:LinkBackPboardType];
+
+ NSData * nsdata
+ = [NSArchiver archivedDataWithRootObject:linkBackData];
+ if (nsdata == nil) {
+ *buf = 0;
+ *len = 0;
+ return;
+ }
- *buf = [nsdata bytes];
- *len = [nsdata length];
+ *buf = [nsdata bytes];
+ *len = [nsdata length];
+ }
}
// setup Obj-C and our client
if (linkBackClient == nil)
linkBackClient = [[LyXLinkBackClient alloc] init];
- if (pool == nil)
- pool = [[NSAutoreleasePool alloc] init];
+ checkAutoReleasePool() ;
// FIXME: really UTF8 here?
NSString * nsDocName = [NSString stringWithUTF8String:docName];
[linkBackClient release];
linkBackClient = nil;
- [pool release];
+ [pool drain];
pool = nil;
}