This commit is contained in:
jefft%netscape.com 1999-05-18 22:30:10 +00:00
Родитель abf1f5225c
Коммит 4f2348070d
2 изменённых файлов: 13 добавлений и 10 удалений

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

@ -24,21 +24,22 @@
#endif
nsUrlListenerManager::nsUrlListenerManager() :
mRefCnt(0),
m_listeners(nsnull)
mRefCnt(0)
{
NS_INIT_REFCNT();
// create a new isupports array to store our listeners in...
m_listeners = new nsVoidArray();
nsresult rv = NS_NewISupportsArray(getter_AddRefs(m_listeners));
}
nsUrlListenerManager::~nsUrlListenerManager()
{
if (m_listeners)
{
PRUint32 count = m_listeners->Count();
PRUint32 cnt = 0;
for (int i = count - 1; i >= 0; i--)
m_listeners->Count(&cnt);
for (int i = cnt - 1; i >= 0; i--)
m_listeners->RemoveElementAt(i);
}
}
@ -48,7 +49,7 @@ NS_IMPL_THREADSAFE_ISUPPORTS(nsUrlListenerManager, nsIUrlListenerManager::GetIID
nsresult nsUrlListenerManager::RegisterListener(nsIUrlListener * aUrlListener)
{
if (m_listeners && aUrlListener)
m_listeners->AppendElement((void *) aUrlListener);
m_listeners->AppendElement(aUrlListener);
return NS_OK;
}
@ -56,7 +57,7 @@ nsresult nsUrlListenerManager::RegisterListener(nsIUrlListener * aUrlListener)
nsresult nsUrlListenerManager::UnRegisterListener(nsIUrlListener * aUrlListener)
{
if (m_listeners && aUrlListener)
m_listeners->RemoveElement((void *) aUrlListener);
m_listeners->RemoveElement(aUrlListener);
return NS_OK;
}
@ -69,8 +70,10 @@ nsresult nsUrlListenerManager::BroadcastChange(nsIURL * aUrl, nsUrlNotifyType no
{
// enumerate over all url listeners...(Start at the end and work our way down)
nsIUrlListener * listener = nsnull;
PRUint32 cnt = 0;
m_listeners->Count(&cnt);
for (PRUint32 i = m_listeners->Count(); i > 0; i--)
for (PRUint32 i = cnt; i > 0; i--)
{
listener = (nsIUrlListener *) m_listeners->ElementAt(i-1);
if (listener)

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

@ -20,7 +20,7 @@
#define nsUrlListenerManager_h___
#include "nsIUrlListenerManager.h"
#include "nsVoidArray.h"
#include "nsISupportsArray.h"
#include "nsCOMPtr.h"
/********************************************************************************************
@ -55,7 +55,7 @@ public:
NS_IMETHOD OnStopRunningUrl(nsIMsgMailNewsUrl * aUrl, nsresult aExitCode);
protected:
nsVoidArray * m_listeners;
nsCOMPtr<nsISupportsArray> m_listeners;
// helper function used to enumerate ISupportsArray and broadcast the change
nsresult BroadcastChange(nsIURL * aUrl, nsUrlNotifyType notification, nsresult aErrorCode);