diff --git a/content/base/src/nsDocument.cpp b/content/base/src/nsDocument.cpp index e20494e15ab..b711969d582 100644 --- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -1290,7 +1290,6 @@ void nsDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) { NS_PRECONDITION(nsnull != aSheet, "null arg"); mStyleSheets.RemoveElement(aSheet); - NS_RELEASE(aSheet); PRBool enabled = PR_TRUE; aSheet->GetEnabled(enabled); @@ -1317,6 +1316,9 @@ void nsDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) } } } + + aSheet->SetOwningDocument(nsnull); + NS_RELEASE(aSheet); } void diff --git a/content/xul/document/src/nsXULDocument.cpp b/content/xul/document/src/nsXULDocument.cpp index 0f17f405796..235aa166aa5 100644 --- a/content/xul/document/src/nsXULDocument.cpp +++ b/content/xul/document/src/nsXULDocument.cpp @@ -1012,7 +1012,6 @@ nsXULDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) { NS_PRECONDITION(nsnull != aSheet, "null arg"); mStyleSheets.RemoveElement(aSheet); - NS_RELEASE(aSheet); PRBool enabled = PR_TRUE; aSheet->GetEnabled(enabled); @@ -1039,6 +1038,9 @@ nsXULDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) } } } + + aSheet->SetOwningDocument(nsnull); + NS_RELEASE(aSheet); } NS_IMETHODIMP diff --git a/layout/base/src/nsDocument.cpp b/layout/base/src/nsDocument.cpp index e20494e15ab..b711969d582 100644 --- a/layout/base/src/nsDocument.cpp +++ b/layout/base/src/nsDocument.cpp @@ -1290,7 +1290,6 @@ void nsDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) { NS_PRECONDITION(nsnull != aSheet, "null arg"); mStyleSheets.RemoveElement(aSheet); - NS_RELEASE(aSheet); PRBool enabled = PR_TRUE; aSheet->GetEnabled(enabled); @@ -1317,6 +1316,9 @@ void nsDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) } } } + + aSheet->SetOwningDocument(nsnull); + NS_RELEASE(aSheet); } void diff --git a/rdf/content/src/nsXULDocument.cpp b/rdf/content/src/nsXULDocument.cpp index 0f17f405796..235aa166aa5 100644 --- a/rdf/content/src/nsXULDocument.cpp +++ b/rdf/content/src/nsXULDocument.cpp @@ -1012,7 +1012,6 @@ nsXULDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) { NS_PRECONDITION(nsnull != aSheet, "null arg"); mStyleSheets.RemoveElement(aSheet); - NS_RELEASE(aSheet); PRBool enabled = PR_TRUE; aSheet->GetEnabled(enabled); @@ -1039,6 +1038,9 @@ nsXULDocument::RemoveStyleSheet(nsIStyleSheet* aSheet) } } } + + aSheet->SetOwningDocument(nsnull); + NS_RELEASE(aSheet); } NS_IMETHODIMP