NSTextView EXC_BAD_ACCESS in deferred layout
NSTextView EXC_BAD_ACCESS in deferred layout
- Subject: NSTextView EXC_BAD_ACCESS in deferred layout
- From: "email@hidden" <email@hidden>
- Date: Fri, 8 Jan 2010 11:35:41 +0000
My GC app has two NSTextViews in two windows.
Distinct attributed text can loaded into both NSTextView instances.
The problem test text data size is 2MB.
The problem does not manifest itself for smaller data sizes.
The 2MB test data can be loaded repeatedly into a single NSTextView instance without issue.
When the same test data is loaded into the second NSTextView instance the crash occurs.
Obviously NSLayoutManager has initiated deferred layout.
Do I have to be aware of any particular layout manager issues in this case?
I am not doing any manipulation of the NSTextView contents.
The content is established using the following binding.
[_textView bind:NSAttributedStringBinding
toObject:self
withKeyPath:@"resultString"
options:[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES], NSConditionallySetsEditableBindingOption, nil]];
Crash details follow.
Thanks
Jonathan
Date/Time: 2010-01-08 11:11:32.074 +0000
OS Version: Mac OS X 10.6.2 (10C540)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x000000000000017c
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Application Specific Information:
objc[653]: garbage collection is ON
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.AppKit 0x92eadd3e -[NSATSGlyphStorage setAbsorbedCount:forIndex:] + 84
1 com.apple.CoreText 0x95cbf9e3 TObjCGlyphStorage::SetAttachmentCount(long, long) + 51
2 com.apple.CoreText 0x95cbf8b0 long TRun::SetAttachmentsLeftToRight<true>(long, long const*, long) + 402
3 com.apple.CoreText 0x95cbf6a8 TRun::DeleteGlyphs(long, long const*, long) + 60
4 com.apple.CoreText 0x95cbf5c1 TLine::DeleteGlyphs(long, long, long const*) + 243
5 com.apple.CoreText 0x95cab05f TShapingEngine::ShapeGlyphs(TLine&, TCharStream const&) + 647
6 com.apple.CoreText 0x95cbba47 TTypesetterRunArray::TTypesetterRunArray(__CFArray const*, __CFString const*, void const* (*)(__CTRun const*, __CFString const*, void*), void*) + 209
7 com.apple.CoreText 0x95cbb962 CTTypesetterCreateWithRunArray + 90
8 com.apple.AppKit 0x92dae76f -[NSATSGlyphStorage createCTTypesetter] + 1585
9 com.apple.AppKit 0x92daa8bc -[NSATSTypesetter _ctTypesetter] + 323
10 com.apple.AppKit 0x92da994b -[NSATSLineFragment layoutForStartingGlyphAtIndex:characterIndex:minPosition:maxPosition:lineFragmentRect:] + 72
11 com.apple.AppKit 0x92da84a4 -[NSATSTypesetter _layoutLineFragmentStartingWithGlyphAtIndex:characterIndex:atPoint:renderingContext:] + 2760
12 com.apple.AppKit 0x92e1addf -[NSATSTypesetter layoutParagraphAtPoint:] + 155
13 com.apple.AppKit 0x9331ecf0 -[NSTypesetter _layoutGlyphsInLayoutManager:startingAtGlyphIndex:maxNumberOfLineFragments:maxCharacterIndex:nextGlyphIndex:nextCharacterIndex:] + 2935
14 com.apple.AppKit 0x92e19fbe -[NSTypesetter layoutCharactersInRange:forLayoutManager:maximumNumberOfLineFragments:] + 218
15 com.apple.AppKit 0x92e19ea2 -[NSATSTypesetter layoutCharactersInRange:forLayoutManager:maximumNumberOfLineFragments:] + 1316
16 com.apple.AppKit 0x92e17eb4 -[NSLayoutManager(NSPrivate) _fillLayoutHoleForCharacterRange:desiredNumberOfLines:isSoft:] + 1020
17 com.apple.AppKit 0x92e8a509 -[NSLayoutManager(NSPrivate) _fillLayoutHoleAtIndex:desiredNumberOfLines:] + 261
18 com.apple.AppKit 0x92e8cf9c +[NSLayoutManager(NSPrivate) _doSomeBackgroundLayout] + 927
19 com.apple.AppKit 0x92e51af4 _NSPostBackgroundLayout + 562
20 com.apple.CoreFoundation 0x95f8b892 __CFRunLoopDoObservers + 1186
21 com.apple.CoreFoundation 0x95f483e2 __CFRunLoopRun + 1154
22 com.apple.CoreFoundation 0x95f47864 CFRunLoopRunSpecific + 452
23 com.apple.CoreFoundation 0x95f47691 CFRunLoopRunInMode + 97
24 com.apple.HIToolbox 0x96589f0c RunCurrentEventLoopInMode + 392
25 com.apple.HIToolbox 0x96589cc3 ReceiveNextEventCommon + 354
26 com.apple.HIToolbox 0x96589b48 BlockUntilNextEventMatchingListInMode + 81
27 com.apple.AppKit 0x92ceeac5 _DPSNextEvent + 847
28 com.apple.AppKit 0x92cee306 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
29 com.apple.AppKit 0x92cb049f -[NSApplication run] + 821
30 com.apple.AppKit 0x92ca8535 NSApplicationMain + 574
31 com.boo.myapp 0x00006bf1 main + 376 (main.m:32)
32 com.boo.myapp 0x00002a51 start + 53
Thread 1: Dispatch queue: com.apple.libdispatch-manager
0 libSystem.B.dylib 0x94a3a0ea kevent + 10
1 libSystem.B.dylib 0x94a3a804 _dispatch_mgr_invoke + 215
2 libSystem.B.dylib 0x94a39cc3 _dispatch_queue_invoke + 163
3 libSystem.B.dylib 0x94a39a68 _dispatch_worker_thread2 + 234
4 libSystem.B.dylib 0x94a394f1 _pthread_wqthread + 390
5 libSystem.B.dylib 0x94a39336 start_wqthread + 30
Thread 2:
0 libSystem.B.dylib 0x94a32856 select$DARWIN_EXTSN + 10
1 com.apple.CoreFoundation 0x95f87ddd __CFSocketManager + 1085
2 libSystem.B.dylib 0x94a40fbd _pthread_start + 345
3 libSystem.B.dylib 0x94a40e42 thread_start + 34
Thread 3:
0 libSystem.B.dylib 0x94a39182 __workq_kernreturn + 10
1 libSystem.B.dylib 0x94a39718 _pthread_wqthread + 941
2 libSystem.B.dylib 0x94a39336 start_wqthread + 30
Thread 4: Dispatch queue: Garbage Collection Work Queue
0 libauto.dylib 0x927fc707 Auto::MemoryScanner::scan_range(Auto::Range const&, Auto::WriteBarrier*) + 919
1 libauto.dylib 0x927fcb24 Auto::MemoryScanner::scan_for_unmarked_blocks(Auto::Subzone*, unsigned long, void*) + 148
2 libauto.dylib 0x927fcd53 Auto::MemoryScanner::scan_pending_until_done() + 339
3 libauto.dylib 0x927fced9 Auto::MemoryScanner::scan() + 41
4 libauto.dylib 0x927f2f98 Auto::Zone::collect(bool, void*, unsigned long long*) + 152
5 libauto.dylib 0x927dca37 auto_collect_internal(Auto::Zone*, int) + 407
6 libauto.dylib 0x927dd36c auto_collection_work(Auto::Zone*) + 140
7 libSystem.B.dylib 0x94a47828 _dispatch_call_block_and_release + 16
8 libSystem.B.dylib 0x94a3a1f4 _dispatch_queue_drain + 249
9 libSystem.B.dylib 0x94a39c52 _dispatch_queue_invoke + 50
10 libSystem.B.dylib 0x94a39a68 _dispatch_worker_thread2 + 234
11 libSystem.B.dylib 0x94a394f1 _pthread_wqthread + 390
12 libSystem.B.dylib 0x94a39336 start_wqthread + 30
Thread 5:
0 libSystem.B.dylib 0x94a39182 __workq_kernreturn + 10
1 libSystem.B.dylib 0x94a39718 _pthread_wqthread + 941
2 libSystem.B.dylib 0x94a39336 start_wqthread + 30
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x0000005f ebx: 0x92eadcfe ecx: 0x00000000 edx: 0x00000001
edi: 0x01422250 esi: 0x0021d400 ebp: 0xbfffcf18 esp: 0xbfffcef0
ss: 0x0000001f efl: 0x00010246 eip: 0x92eadd3e cs: 0x00000017
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
cr2: 0x0000017c
Regards
Jonathan Mitchell
Developer
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