Fixes for bugs 17460 and 21656. r=travis

git-svn-id: svn://10.0.0.236/trunk@57811 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
hyatt%netscape.com
2000-01-14 09:28:54 +00:00
parent 4bd740a4cb
commit 8f6502ffb7
52 changed files with 797 additions and 458 deletions

View File

@@ -2299,21 +2299,29 @@ PresShell::GetHistoryState(nsILayoutHistoryState** aState)
NS_PRECONDITION(nsnull != aState, "null state pointer");
// Create the document state object
rv = NS_NewLayoutHistoryState(aState);
if (!mHistoryState) {
// Create the document state object
rv = NS_NewLayoutHistoryState(aState); // This addrefs
if (NS_FAILED(rv)) {
*aState = nsnull;
return rv;
if (NS_FAILED(rv)) {
*aState = nsnull;
return rv;
}
// Capture frame state for the entire frame hierarchy
nsIFrame* rootFrame = nsnull;
rv = GetRootFrame(&rootFrame);
if (NS_FAILED(rv) || nsnull == rootFrame) return rv;
rv = mFrameManager->CaptureFrameState(mPresContext, rootFrame, *aState);
mHistoryState = *aState;
return NS_OK;
}
// Capture frame state for the entire frame hierarchy
nsIFrame* rootFrame = nsnull;
rv = GetRootFrame(&rootFrame);
if (NS_FAILED(rv) || nsnull == rootFrame) return rv;
rv = mFrameManager->CaptureFrameState(mPresContext, rootFrame, *aState);
*aState = mHistoryState;
NS_IF_ADDREF(mHistoryState);
return rv;
}