fix crash when editing filters after running them after the fact, sr=mscott, a=asa, 242600

git-svn-id: svn://10.0.0.236/trunk@174561 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bienvenu%nventure.com
2005-06-14 13:47:31 +00:00
parent a22cce94f5
commit 9dc5f500e4
3 changed files with 11 additions and 9 deletions

View File

@@ -73,6 +73,7 @@ nsMsgFilterList::nsMsgFilterList() :
m_loggingEnabled = PR_FALSE;
m_startWritingToBuffer = PR_FALSE;
m_temporaryList = PR_FALSE;
m_curFilter = nsnull;
m_arbitraryHeaders.SetLength(0);
}
@@ -963,7 +964,8 @@ nsMsgFilterList::RemoveFilter(nsIMsgFilter *aFilter)
nsresult nsMsgFilterList::InsertFilterAt(PRUint32 filterIndex, nsIMsgFilter *aFilter)
{
nsMsgFilter *filter = NS_STATIC_CAST(nsMsgFilter *, aFilter);
filter->SetFilterList(this);
if (!m_temporaryList)
filter->SetFilterList(this);
m_filters->InsertElementAt(aFilter, filterIndex);
return NS_OK;
}

View File

@@ -74,6 +74,8 @@ public:
nsresult Close();
nsresult LoadTextFilters(nsIOFileStream *aStream);
PRBool m_temporaryList;
protected:
// type-safe accessor when you really have to have an nsMsgFilter
nsresult GetMsgFilterAt(PRUint32 filterIndex, nsMsgFilter **filter);

View File

@@ -716,14 +716,12 @@ nsresult nsMsgFilterAfterTheFact::ApplyFilter()
NS_IMETHODIMP nsMsgFilterService::GetTempFilterList(nsIMsgFolder *aFolder, nsIMsgFilterList **aFilterList)
{
NS_ENSURE_ARG_POINTER(aFilterList);
*aFilterList = new nsMsgFilterList;
if (*aFilterList)
{
(*aFilterList)->SetFolder(aFolder);
NS_ADDREF(*aFilterList);
return NS_OK;
}
return NS_ERROR_OUT_OF_MEMORY;
nsMsgFilterList *filterList = new nsMsgFilterList;
NS_ENSURE_TRUE(filterList, NS_ERROR_OUT_OF_MEMORY);
NS_ADDREF(*aFilterList = filterList);
(*aFilterList)->SetFolder(aFolder);
filterList->m_temporaryList = PR_TRUE;
return NS_OK;
}
NS_IMETHODIMP nsMsgFilterService::ApplyFiltersToFolders(nsIMsgFilterList *aFilterList, nsISupportsArray *aFolders, nsIMsgWindow *aMsgWindow)