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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user