Dear list,

I have developed an app on SL but at all times compiled the app for 10.5. Today 
I got my hands on a leopard test machine to try out the app, and I get crashes 
due to various things. Some of these I've fixed, but I'm stuck at this one:

Part of the app has an NSTableView filled with strings. I am able to drag these 
strings from this 'library of strings' to another NSTextView. This all works 
find on SL, but on Leopard it sends the app either in to spinning beachball 
mode or it crashes. In the spinning beachball case I have to 'force quit' the 
app, and then I get a very long report which I can't extract any useful 
information from. The 'crash' actually happens before I reach a dragging 
destination, so it must be something at the source end. When the app crashes 
(rather than beachballs) I get the following (extract) crash report:

Thread 0 Crashed:
0   com.apple.CoreFoundation            0x00007fff8068e24f 
CFDictionaryRemoveValue + 63
1   com.apple.AppKit                    0x00007fff80f3cec8 -[NSPasteboard 
setData:forType:] + 211
2   com.apple.AppKit                    0x00007fff80f3cdcf -[NSPasteboard 
setString:forType:] + 122
3   com.mhsoft.TeXnicle                 0x0000000100015d7c -[LibraryController 
tableView:writeRowsWithIndexes:toPasteboard:] + 651
4   com.apple.AppKit                    0x00007fff80ddda72 -[NSTableView 
_performDragFromMouseDown:] + 651
5   com.apple.AppKit                    0x00007fff80ddbbf8 -[NSTableView 
mouseDown:] + 653
6   com.apple.AppKit                    0x00007fff80d93783 -[NSWindow 
sendEvent:] + 5068
7   com.apple.AppKit                    0x00007fff80d60d46 -[NSApplication 
sendEvent:] + 5089
8   com.apple.AppKit                    0x00007fff80cbb562 -[NSApplication run] 
+ 497
9   com.apple.AppKit                    0x00007fff80c882f0 NSApplicationMain + 
373
10  com.mhsoft.TeXnicle                 0x0000000100005d40 main + 33
11  com.mhsoft.TeXnicle                 0x00000001000017c0 start + 52


Here's the bit of code that writes the string to the pasteboard:

- (BOOL)tableView:(NSTableView *)aTableView 
writeRowsWithIndexes:(NSIndexSet *)rowIndexes 
                 toPasteboard:(NSPasteboard*)pboard
{       
        if (aTableView == itemsTable) {
                                
                NSArray *items = [[contentsController arrangedObjects] 
objectsAtIndexes:rowIndexes];                    
                NSMutableArray *strings = [NSMutableArray array];
                for (NSDictionary *item in items) {
                        [strings addObject:[item valueForKey:@"Code"]];
                }
//              id str = [[strings componentsJoinedByString:@"\n"] retain];
                id str = [strings componentsJoinedByString:@"\n"];
                NSLog(@"Writing to pboard: %@", str);
                return [pboard setString:str forType:NSStringPboardType];
        }
        
        return NO;
}

At one point I became unsure about the autoreleased string I create by 
'componentsJoinedByString:' and if the pasteboard retains that or now, but I 
tested retaining and not, and it doesn't change anything. Can anyone see any 
obvious error? 

More info: this can really screw up the system pasteboard because sometimes 
after this crash I can no longer drag-n-drop text in any app and need to reboot 
to get things working again!

I'm hoping to avoid setting up a build environment on the Leopard machine, but 
maybe that's a little optimistic.

Any advice gratefully received.

I'd gladly send the app to anyone interested in running it. 

The SL working version can be found at: 
http://web.me.com/martinhewitson/BOBsoft/TeXnicle.html

Thanks in advance,

Martin

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Martin Hewitson
Albert-Einstein-Institut
Max-Planck-Institut fuer 
    Gravitationsphysik und Universitaet Hannover
Callinstr. 38, 30167 Hannover, Germany
Tel: +49-511-762-17121, Fax: +49-511-762-5861
E-Mail: martin.hewit...@aei.mpg.de
WWW: http://www.aei.mpg.de/~hewitson
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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 arch...@mail-archive.com

Reply via email to