NSAttributedString -initWithPath RTFD crash on Lion
NSAttributedString -initWithPath RTFD crash on Lion
- Subject: NSAttributedString -initWithPath RTFD crash on Lion
- From: "email@hidden" <email@hidden>
- Date: Mon, 01 Aug 2011 11:31:26 +0100
On OS X 10.7 the following is crashing on occasion in a GC app when the path contains an RTFD document:
On SL the issue does not occur.
NSAttributedString *atext = [[NSAttributedString alloc] initWithPath:Path documentAttributes:NULL];
The kernel log states:
01/08/2011 09:44:29.000 kernel: Data/Stack execution not permitted: MondayApp[pid 59614] at virtual address 0xfefff000, protections were read-write
I have tried disabling the collector without effect.
The code is used to load an RTFD file resource and often loads the resource without issue.
The crash is repeatable in the sense that it occurs when the code is triggered by particular set of bindings.
Other non RTFD file resources are loaded at the same time and load without issue.
The path is okay.
The following workaround seems reliable:
// get path to rtf file
NSString *filePath = [path stringByAppendingPathComponent:@"TXT.rtf"];
// get data
NSData *data = [NSData dataWithContentsOfFile:filePath options:0 error:&docError];
// get attributed string
if (!docError) {
atext = [[NSAttributedString alloc] initWithData:data options:nil documentAttributes:NULL error:&docError];
}
This might work for anyone else hitting this issue.
0x95c48d61 <+0000> push ëp
0x95c48d62 <+0001> mov %esp,ëp
0x95c48d64 <+0003> push %esi
0x95c48d65 <+0004> sub $0x24,%esp
0x95c48d68 <+0007> call 0x95c48d6d <-[NSAttributedString(NSAttributedStringKitAdditions) initWithPath:documentAttributes:]+12>
0x95c48d6d <+0012> pop %esi
0x95c48d6e <+0013> mov 0x16b37697(%esi),êx
0x95c48d74 <+0019> mov 0x16b26803(%esi),ìx
0x95c48d7a <+0025> mov 0x10(ëp),íx
0x95c48d7d <+0028> mov íx,0x8(%esp)
0x95c48d81 <+0032> mov ìx,0x4(%esp)
0x95c48d85 <+0036> mov êx,(%esp)
0x95c48d88 <+0039> call 0x962937e2 <dyld_stub_objc_msgSend>
0x95c48d8d <+0044> mov 0x16b26dd3(%esi),ìx
0x95c48d93 <+0050> mov 0x14(ëp),íx
0x95c48d96 <+0053> mov íx,0x10(%esp)
0x95c48d9a <+0057> mov êx,0x8(%esp)
0x95c48d9e <+0061> mov ìx,0x4(%esp)
0x95c48da2 <+0065> mov 0x8(ëp),êx
0x95c48da5 <+0068> mov êx,(%esp)
0x95c48da8 <+0071> movl $0x0,0x14(%esp)
0x95c48db0 <+0079> movl $0x0,0xc(%esp)
0x95c48db8 <+0087> call 0x962937e2 <dyld_stub_objc_msgSend>
0x95c48dbd <+0092> add $0x24,%esp <<-- program received signal EXC_BAD_ACCESS
0x95c48dc0 <+0095> pop %esi
0x95c48dc1 <+0096> pop ëp
0x95c48dc2 <+0097> ret
Regards
Jonathan Mitchell
Developer
Mugginsoft LLP
http://www.mugginsoft.com
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden