Re: Crash in _NSTableRowHeightStorage
Re: Crash in _NSTableRowHeightStorage
- Subject: Re: Crash in _NSTableRowHeightStorage
- From: Samuel Williams <email@hidden>
- Date: Fri, 9 Mar 2007 11:42:50 +1300
As far as I know, this is a problem with the Cocoa. I had exactly the
same problems, completely erratic. The only way I solved this problem
was by not using that feature.
One element that could cause the problem in my case was faulting a
core data object (if I removed the fault, the problem would mostly go
away). I'm guessing it has something to do with memory allocations/
releases, or something? But, actually, I am just guessing. I have no
idea what the problem is, and Cocoa is closed source (which is a
pity..), so I cannot look into the source code.
I did some searches on google and turned up the following evidence to
further support this:
http://trac.cyberduck.ch/changeset/2729 (Using tableViewHeightOfRow
delegate leads to crash in [NSTableView _uncachedRectHeightOfRow:])
I am happy to discuss this further with you, if you are interested, I
spent a long time debugging this (several weeks), and did not get
very far. I hope that Apple can deal with this. I have, in general,
found NSOutlineView / NSTreeController to be a very very flakey
combination. I think I submitted a demo application to Apple at some
point a year or so ago via their bug report system, but they have
obviously not made any progress on the matter. I am surprised it has
not been affecting more people.
Regards,
Samuel
On 9/03/2007, at 8:09 AM, email@hidden wrote:
Hi all,
I'm having a heck of a time tracking down the cause of a crash.
Although the crash occurs in a number of places it always involves
NSOutlineView as it computes row heights. There is also the
consistent presence of _NSTableRowHeightStorage, with the crash often
occurring in that object. The outline view is always connected to a
delegate, and the delegate always provides the row height.
The conditions are otherwise variable. Sometimes an NSTreeController
is used, sometimes an NSArrayController. Various classes are used for
the nodes, some painfully simple. The catalyst for the crash also
varies. It occur when code expands a node in the outline but also
when the content of the outline's controller changes, as in the
example below. To make matters worse, I am unable to reproduce the
crash, but it occurs variably for a number of users.
I have attached a portion of one of the crash reports. Does anyone
have any leads on a possible cause?
-Phil
Thread 0 Crashed:
0 com.apple.AppKit 0x934a8a61 -[_NSTableRowHeightStorage
_cacheRowHeightsIntoBucket:bucketFirstRowIndex:lastCacheableRowIndex:]
+
115
1 com.apple.AppKit 0x93392140 -[_NSTableRowHeightStorage
createAndCacheRowHeightSumsIfNecessary] + 359
2 com.apple.AppKit 0x93391fcd -[_NSTableRowHeightStorage
computeTableHeight] + 34
3 com.apple.AppKit 0x9335e079 -[NSTableView
_totalHeightOfTableView] + 122
4 com.apple.AppKit 0x9335cb27 -[NSTableView tile] + 318
5 com.apple.AppKit 0x9335c9a5 -[NSTableView
_tileAndRedisplayAll] + 34
6 com.apple.AppKit 0x93391336 -[NSOutlineView reloadData]
+ 98
7 com.apple.AppKit 0x937f343d -[NSOutlineViewBinder
_observeValueForKeyPath:ofObject:context:] + 163
8 com.apple.Foundation 0x9262832e -[NSObject
(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] +
1111
9 com.apple.AppKit 0x9338d3c7 -[NSController
_notifyObserversForKeyPath:change:] + 241
10 com.apple.AppKit 0x9338d2cf -[NSController
didChangeValueForKey:] + 48
11 com.apple.AppKit 0x937fc061 -[NSTreeController
_didChangeValuesForArrangedKeys:objectKeys:indexPathKeys:] + 69
12 com.apple.AppKit 0x937f6a06 -[NSTreeController
_prepareArrayControllerTree] + 1314
13 com.apple.AppKit 0x937f9f75 -[NSTreeController
setContent:] + 478
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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