On 1 Mar 2010, at 16:03, Martin Hewitson wrote:
> 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;
> }
>
Try preparing the pasteboard first with either of the following:
- (NSInteger)clearContents
- (NSInteger)declareTypes:(NSArray *)newTypes owner:(id)newOwner
Regards
Jonathan Mitchell
Developer
http://www.mugginsoft.com
> 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: [email protected]
> WWW: http://www.aei.mpg.de/~hewitson
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
>
>
> _______________________________________________
>
> 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/jonathan%40mugginsoft.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]