зеркало из https://github.com/mozilla/gecko-dev.git
Switching over to nsIEventQueues instead of PLEventQueues.
This commit is contained in:
Родитель
ae4e8ae9ca
Коммит
eb5cc9711c
|
@ -106,7 +106,7 @@ nsresult PerformNastyWindowsAsyncDNSHack(URL_Struct* URL_s, nsIURL* aURL);
|
|||
|
||||
char *mangleResourceIntoFileURL(const char* aResourceFileName);
|
||||
|
||||
extern nsIStreamListener* ns_NewStreamListenerProxy(nsIStreamListener* aListener, PLEventQueue* aEventQ);
|
||||
extern nsIStreamListener* ns_NewStreamListenerProxy(nsIStreamListener* aListener, nsIEventQueue* aEventQ);
|
||||
|
||||
extern "C" {
|
||||
#if defined(XP_WIN) || defined(XP_OS2)
|
||||
|
@ -356,7 +356,7 @@ nsresult nsNetlibService::OpenStream(nsIURL *aUrl,
|
|||
nsINetlibURL *netlibURL;
|
||||
nsresult result;
|
||||
nsIStreamListener* consumer;
|
||||
PLEventQueue* evQueue = nsnull;
|
||||
nsIEventQueue* evQueue = nsnull;
|
||||
|
||||
if ((NULL == aConsumer) || (NULL == aUrl)) {
|
||||
return NS_FALSE;
|
||||
|
@ -446,7 +446,11 @@ nsresult nsNetlibService::OpenStream(nsIURL *aUrl,
|
|||
* Currently, this information is needed to marshall the call to the URL
|
||||
* exit_routine(...) on the correct thread...
|
||||
*/
|
||||
|
||||
URL_s->owner_data = evQueue;
|
||||
|
||||
/* Done with the event queue pointer at this point. Release it. */
|
||||
NS_IF_RELEASE(evQueue);
|
||||
|
||||
/*
|
||||
* Give the protocol a chance to initialize any URL_Struct fields...
|
||||
|
@ -495,7 +499,7 @@ nsresult nsNetlibService::OpenBlockingStream(nsIURL *aUrl,
|
|||
nsNetlibStream *pBlockingStream;
|
||||
nsINetlibURL *netlibURL;
|
||||
nsIStreamListener* consumer = nsnull;
|
||||
PLEventQueue* evQueue = nsnull;
|
||||
nsIEventQueue* evQueue = nsnull;
|
||||
nsresult result;
|
||||
|
||||
if (NULL == aNewStream) {
|
||||
|
@ -619,6 +623,9 @@ nsresult nsNetlibService::OpenBlockingStream(nsIURL *aUrl,
|
|||
* exit_routine(...) on the correct thread...
|
||||
*/
|
||||
URL_s->owner_data = evQueue;
|
||||
|
||||
/* Done with the event queue pointer at this point. Release it. */
|
||||
NS_IF_RELEASE(evQueue);
|
||||
|
||||
/*
|
||||
* Give the protocol a chance to initialize any URL_Struct fields...
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "nsNetThread.h"
|
||||
|
||||
#include "nsIEventQueueService.h"
|
||||
#include "nsIStreamListener.h"
|
||||
#include "nsIInputStream.h"
|
||||
#include "nsIURL.h"
|
||||
|
@ -337,7 +338,7 @@ void nsNetlibThread::NetlibMainLoop()
|
|||
class nsStreamListenerProxy : public nsIStreamListener
|
||||
{
|
||||
public:
|
||||
nsStreamListenerProxy(nsIStreamListener* aListener, PLEventQueue* aEventQ);
|
||||
nsStreamListenerProxy(nsIStreamListener* aListener, nsIEventQueue* aEventQ);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
|
@ -359,7 +360,7 @@ protected:
|
|||
|
||||
private:
|
||||
nsresult mStatus;
|
||||
PLEventQueue* mEventQ;
|
||||
nsIEventQueue* mEventQ;
|
||||
};
|
||||
|
||||
|
||||
|
@ -370,7 +371,7 @@ struct ProxyEvent : public PLEvent
|
|||
virtual ~ProxyEvent();
|
||||
virtual void InitEvent();
|
||||
NS_IMETHOD HandleEvent() = 0;
|
||||
void Fire(PLEventQueue* aEventQ);
|
||||
void Fire(nsIEventQueue* aEventQ);
|
||||
|
||||
static void PR_CALLBACK HandlePLEvent(PLEvent* aEvent);
|
||||
static void PR_CALLBACK DestroyPLEvent(PLEvent* aEvent);
|
||||
|
@ -410,13 +411,13 @@ void PR_CALLBACK ProxyEvent::DestroyPLEvent(PLEvent* aEvent)
|
|||
}
|
||||
|
||||
|
||||
void ProxyEvent::Fire(PLEventQueue* aEventQ)
|
||||
void ProxyEvent::Fire(nsIEventQueue* aEventQ)
|
||||
{
|
||||
InitEvent();
|
||||
|
||||
NS_PRECONDITION(nsnull != aEventQ, "PLEventQueue for thread is null");
|
||||
NS_PRECONDITION(nsnull != aEventQ, "nsIEventQueue for thread is null");
|
||||
|
||||
PL_PostEvent(aEventQ, this);
|
||||
aEventQ->PostEvent(this);
|
||||
}
|
||||
|
||||
|
||||
|
@ -634,7 +635,7 @@ OnDataAvailableProxyEvent::HandleEvent()
|
|||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
nsStreamListenerProxy::nsStreamListenerProxy(nsIStreamListener* aListener,
|
||||
PLEventQueue* aEventQ)
|
||||
nsIEventQueue* aEventQ)
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
|
||||
|
@ -642,6 +643,8 @@ nsStreamListenerProxy::nsStreamListenerProxy(nsIStreamListener* aListener,
|
|||
NS_ADDREF(mRealListener);
|
||||
|
||||
mEventQ = aEventQ;
|
||||
NS_IF_ADDREF(mEventQ);
|
||||
|
||||
mStatus = NS_OK;
|
||||
}
|
||||
|
||||
|
@ -819,10 +822,11 @@ nsStreamListenerProxy::OnDataAvailable(nsIURL* aURL, nsIInputStream *aIStream,
|
|||
nsStreamListenerProxy::~nsStreamListenerProxy()
|
||||
{
|
||||
NS_RELEASE(mRealListener);
|
||||
NS_IF_RELEASE(mEventQ);
|
||||
}
|
||||
|
||||
nsIStreamListener* ns_NewStreamListenerProxy(nsIStreamListener* aListener,
|
||||
PLEventQueue* aEventQ)
|
||||
nsIEventQueue* aEventQ)
|
||||
{
|
||||
return new nsStreamListenerProxy(aListener, aEventQ);
|
||||
}
|
||||
|
@ -911,7 +915,10 @@ net_CallExitRoutineProxy(Net_GetUrlExitFunc* exit_routine,
|
|||
ev = new CallExitRoutineProxyEvent(exit_routine, URL_s, status,
|
||||
format_out, window_id);
|
||||
if (nsnull != ev) {
|
||||
ev->Fire((PLEventQueue*)URL_s->owner_data);
|
||||
|
||||
nsIEventQueue* eventQueue = (nsIEventQueue*)(URL_s->owner_data);
|
||||
if (eventQueue)
|
||||
ev->Fire(eventQueue);
|
||||
}
|
||||
} else {
|
||||
net_CallExitRoutine(exit_routine, URL_s, status, format_out, window_id);
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#include "plstr.h"
|
||||
|
||||
extern nsIStreamListener* ns_NewStreamListenerProxy(nsIStreamListener* aListener, PLEventQueue* aEventQ);
|
||||
extern nsIStreamListener* ns_NewStreamListenerProxy(nsIStreamListener* aListener, nsIEventQueue* aEventQ);
|
||||
static NS_DEFINE_IID(kIOutputStreamIID, NS_IOUTPUTSTREAM_IID);
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||
|
@ -344,6 +344,7 @@ nsSocketTransport::~nsSocketTransport()
|
|||
rv = CloseCurrentConnection();
|
||||
|
||||
NS_IF_RELEASE(mEventQService);
|
||||
NS_IF_RELEASE(m_evQueue);
|
||||
NS_IF_RELEASE(m_outStream);
|
||||
NS_IF_RELEASE(m_url);
|
||||
NS_IF_RELEASE(m_inputStreamConsumer);
|
||||
|
|
|
@ -116,7 +116,7 @@ protected:
|
|||
nsString* mData;
|
||||
PRFileDesc *m_ready_fd;
|
||||
nsIEventQueueService* mEventQService;
|
||||
PLEventQueue* m_evQueue;
|
||||
nsIEventQueue* m_evQueue;
|
||||
char m_buffer[NET_SOCKSTUB_BUF_SIZE];
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче