diff --git a/docshell/shistory/src/nsSHEntry.cpp b/docshell/shistory/src/nsSHEntry.cpp index 4fd9c67bf63a..9143534b63b3 100644 --- a/docshell/shistory/src/nsSHEntry.cpp +++ b/docshell/shistory/src/nsSHEntry.cpp @@ -185,6 +185,7 @@ NS_IMETHODIMP nsSHEntry::GetLayoutHistoryState(nsILayoutHistoryState** aResult) NS_IMETHODIMP nsSHEntry::SetLayoutHistoryState(nsILayoutHistoryState* aState) { + NS_ENSURE_STATE(mSaveLayoutState || !aState); mLayoutHistoryState = aState; return NS_OK; } @@ -257,6 +258,12 @@ NS_IMETHODIMP nsSHEntry::GetSaveLayoutStateFlag(PRBool * aFlag) NS_IMETHODIMP nsSHEntry::SetSaveLayoutStateFlag(PRBool aFlag) { mSaveLayoutState = aFlag; + + // if we are not allowed to hold layout history state, then make sure + // that we are not holding it! + if (!mSaveLayoutState) + mLayoutHistoryState = nsnull; + return NS_OK; }