Bug 581536 - Part 3: Disconnect the transaction manager from the pres context as soon as it's disconnected from the pres shell; r=dbaron a=blocking-betaN+

This patch ensures that if for some reason, the pres context for a pres shell
goes away, we do not hold on to the old transaction manager.  Doing so would
lead into the transition properties not being deleted from the elements, which
will later on confuse the new transaction manager if we ever create one.

--HG--
extra : rebase_source : 11cbd972b81be1fa772eb865b2793d55711eec88
This commit is contained in:
Ehsan Akhgari 2010-12-17 20:45:18 -08:00
parent 986f49d464
commit cfa25ee435

View File

@ -258,10 +258,6 @@ nsPresContext::~nsPresContext()
NS_PRECONDITION(!mShell, "Presshell forgot to clear our mShell pointer");
SetShell(nsnull);
if (mTransitionManager) {
mTransitionManager->Disconnect();
}
// Disconnect the refresh driver *after* the transition manager, which
// needs it.
if (mRefreshDriver && mRefreshDriver->PresContext() == this) {
@ -1047,6 +1043,11 @@ nsPresContext::SetShell(nsIPresShell* aShell)
mImageLoaders[i].Enumerate(destroy_loads, nsnull);
mImageLoaders[i].Clear();
}
if (mTransitionManager) {
mTransitionManager->Disconnect();
mTransitionManager = nsnull;
}
}
}