Call InvalidateColumns more often. (Bug 506871) r=roc

This commit is contained in:
L. David Baron 2009-08-07 14:17:02 -07:00
parent 289f1720d4
commit 1233c40b2d
2 changed files with 10 additions and 6 deletions

View File

@ -385,10 +385,7 @@ nsTreeColumns::nsTreeColumns(nsITreeBoxObject* aTree)
nsTreeColumns::~nsTreeColumns()
{
for (nsTreeColumn* currCol = mFirstColumn; currCol; currCol = currCol->GetNext()) {
currCol->SetColumns(nsnull);
}
NS_IF_RELEASE(mFirstColumn);
nsTreeColumns::InvalidateColumns();
}
// QueryInterface implementation for nsTreeColumns
@ -575,6 +572,10 @@ nsTreeColumns::GetColumnAt(PRInt32 aIndex, nsITreeColumn** _retval)
NS_IMETHODIMP
nsTreeColumns::InvalidateColumns()
{
for (nsTreeColumn* currCol = mFirstColumn; currCol;
currCol = currCol->GetNext()) {
currCol->SetColumns(nsnull);
}
NS_IF_RELEASE(mFirstColumn);
return NS_OK;
}
@ -604,7 +605,7 @@ nsTreeColumns::RestoreNaturalOrder()
child->SetAttr(kNameSpaceID_None, nsGkAtoms::ordinal, ordinal, PR_TRUE);
}
NS_IF_RELEASE(mFirstColumn);
nsTreeColumns::InvalidateColumns();
mTree->Invalidate();

View File

@ -107,7 +107,10 @@ protected:
nsTreeColumn* GetNext() { return mNext; }
nsTreeColumn* GetPrevious() { return mPrevious; }
void SetNext(nsTreeColumn* aNext) { NS_IF_ADDREF(mNext = aNext); }
void SetNext(nsTreeColumn* aNext) {
NS_ASSERTION(!mNext, "already have a next sibling");
NS_IF_ADDREF(mNext = aNext);
}
void SetPrevious(nsTreeColumn* aPrevious) { mPrevious = aPrevious; }
private: