This commit is contained in:
dr%netscape.com 2001-04-03 20:42:41 +00:00
Родитель f891bf4c29
Коммит 02a685888f
2 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -623,7 +623,12 @@ nsDocument::~nsDocument()
} }
NS_IF_RELEASE(mArena); NS_IF_RELEASE(mArena);
NS_IF_RELEASE(mListenerManager);
if (mListenerManager != nsnull) {
mListenerManager->SetListenerTarget(nsnull);
NS_RELEASE(mListenerManager);
}
NS_IF_RELEASE(mDOMStyleSheets); NS_IF_RELEASE(mDOMStyleSheets);
NS_IF_RELEASE(mNameSpaceManager); NS_IF_RELEASE(mNameSpaceManager);
if (nsnull != mHeaderData) { if (nsnull != mHeaderData) {
@ -2767,6 +2772,7 @@ nsresult nsDocument::GetListenerManager(nsIEventListenerManager **aInstancePtrRe
if (NS_OK == GetNewListenerManager(aInstancePtrResult)) { if (NS_OK == GetNewListenerManager(aInstancePtrResult)) {
mListenerManager = *aInstancePtrResult; mListenerManager = *aInstancePtrResult;
NS_ADDREF(mListenerManager); NS_ADDREF(mListenerManager);
mListenerManager->SetListenerTarget(NS_STATIC_CAST(nsIDocument*,this));
return NS_OK; return NS_OK;
} }
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;

Просмотреть файл

@ -468,6 +468,9 @@ nsXULDocument::~nsXULDocument()
delete mTemplateBuilderTable; delete mTemplateBuilderTable;
delete mBoxObjectTable; delete mBoxObjectTable;
if (mListenerManager)
mListenerManager->SetListenerTarget(nsnull);
if (--gRefCnt == 0) { if (--gRefCnt == 0) {
if (gRDFService) { if (gRDFService) {
nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService); nsServiceManager::ReleaseService(kRDFServiceCID, gRDFService);
@ -4174,6 +4177,8 @@ nsXULDocument::GetListenerManager(nsIEventListenerManager** aResult)
getter_AddRefs(mListenerManager)); getter_AddRefs(mListenerManager));
if (NS_FAILED(rv)) return rv; if (NS_FAILED(rv)) return rv;
mListenerManager->SetListenerTarget(NS_STATIC_CAST(nsIDocument*,this));
} }
*aResult = mListenerManager; *aResult = mListenerManager;
NS_ADDREF(*aResult); NS_ADDREF(*aResult);