mshtml: Don't access BSCallback directly in nsio.c.

This commit is contained in:
Jacek Caban 2008-03-23 02:15:20 +01:00 committed by Alexandre Julliard
parent 2870f21d06
commit f792ada40f
3 changed files with 18 additions and 20 deletions

View File

@ -434,6 +434,8 @@ HRESULT load_stream(BSCallback*,IStream*);
void set_document_bscallback(HTMLDocument*,BSCallback*);
void set_current_mon(HTMLDocument*,IMoniker*);
void channelbsc_set_channel(BSCallback*,nsChannel*,nsIStreamListener*,nsISupports*);
IHTMLSelectionObject *HTMLSelectionObject_Create(HTMLDocument*,nsISelection*);
IHTMLTxtRange *HTMLTxtRange_Create(HTMLDocument*,nsIDOMRange*);
IHTMLStyle *HTMLStyle_Create(nsIDOMCSSStyleDeclaration*);

View File

@ -908,3 +908,17 @@ HRESULT load_stream(BSCallback *bscallback, IStream *stream)
return hres;
}
void channelbsc_set_channel(BSCallback *This, nsChannel *channel, nsIStreamListener *listener, nsISupports *context)
{
nsIChannel_AddRef(NSCHANNEL(channel));
This->nschannel = channel;
nsIStreamListener_AddRef(listener);
This->nslistener = listener;
if(context) {
nsISupports_AddRef(context);
This->nscontext = context;
}
}

View File

@ -685,16 +685,7 @@ static nsresult async_open_doc_uri(nsChannel *This, NSContainer *container,
*open = FALSE;
if(container->bscallback) {
nsIChannel_AddRef(NSCHANNEL(This));
container->bscallback->nschannel = This;
nsIStreamListener_AddRef(listener);
container->bscallback->nslistener = listener;
if(context) {
nsISupports_AddRef(context);
container->bscallback->nscontext = context;
}
channelbsc_set_channel(container->bscallback, This, listener, context);
if(container->doc && container->doc->mime) {
DWORD len;
@ -781,16 +772,7 @@ static nsresult async_open(nsChannel *This, NSContainer *container, nsIStreamLis
bscallback = create_bscallback(mon);
IMoniker_Release(mon);
nsIChannel_AddRef(NSCHANNEL(This));
bscallback->nschannel = This;
nsIStreamListener_AddRef(listener);
bscallback->nslistener = listener;
if(context) {
nsISupports_AddRef(context);
bscallback->nscontext = context;
}
channelbsc_set_channel(bscallback, This, listener, context);
task = heap_alloc(sizeof(task_t));