Jacek Caban : mshtml: Moved nsChannel initialization to separated function.
Alexandre Julliard
julliard at winehq.org
Mon Apr 18 11:10:52 CDT 2011
Module: wine
Branch: master
Commit: f24be9fa541cafc043eec884950b6c80fc0ad5fa
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f24be9fa541cafc043eec884950b6c80fc0ad5fa
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Apr 15 19:36:24 2011 +0200
mshtml: Moved nsChannel initialization to separated function.
---
dlls/mshtml/nsio.c | 57 ++++++++++++++++++++++++++++++++-------------------
1 files changed, 36 insertions(+), 21 deletions(-)
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index bd6a411..29825fe 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -2532,6 +2532,37 @@ HRESULT create_doc_uri(HTMLWindow *window, WCHAR *url, nsWineURI **ret)
return S_OK;
}
+static nsresult create_nschannel(nsWineURI *uri, nsChannel **ret)
+{
+ nsChannel *channel;
+ HRESULT hres;
+
+ if(!ensure_uri(uri))
+ return NS_ERROR_UNEXPECTED;
+
+ channel = heap_alloc_zero(sizeof(nsChannel));
+ if(!channel)
+ return NS_ERROR_OUT_OF_MEMORY;
+
+ channel->nsIHttpChannel_iface.lpVtbl = &nsChannelVtbl;
+ channel->nsIUploadChannel_iface.lpVtbl = &nsUploadChannelVtbl;
+ channel->nsIHttpChannelInternal_iface.lpVtbl = &nsHttpChannelInternalVtbl;
+ channel->ref = 1;
+ channel->request_method = METHOD_GET;
+ list_init(&channel->response_headers);
+ list_init(&channel->request_headers);
+
+ nsIURL_AddRef(&uri->nsIURL_iface);
+ channel->uri = uri;
+
+ hres = IUri_GetScheme(uri->uri, &channel->url_scheme);
+ if(FAILED(hres))
+ channel->url_scheme = URL_SCHEME_UNKNOWN;
+
+ *ret = channel;
+ return NS_OK;
+}
+
typedef struct {
nsIProtocolHandler nsIProtocolHandler_iface;
@@ -2839,10 +2870,9 @@ static nsresult NSAPI nsIOService_NewFileURI(nsIIOService *iface, nsIFile *aFile
static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI *aURI,
nsIChannel **_retval)
{
- nsChannel *ret;
nsWineURI *wine_uri;
+ nsChannel *ret;
nsresult nsres;
- HRESULT hres;
TRACE("(%p %p)\n", aURI, _retval);
@@ -2852,29 +2882,14 @@ static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI
return nsIIOService_NewChannelFromURI(nsio, aURI, _retval);
}
- if(!ensure_uri(wine_uri)) {
- nsIURI_Release(&wine_uri->nsIURL_iface);
- return NS_ERROR_UNEXPECTED;
- }
-
- ret = heap_alloc_zero(sizeof(nsChannel));
-
- ret->nsIHttpChannel_iface.lpVtbl = &nsChannelVtbl;
- ret->nsIUploadChannel_iface.lpVtbl = &nsUploadChannelVtbl;
- ret->nsIHttpChannelInternal_iface.lpVtbl = &nsHttpChannelInternalVtbl;
- ret->ref = 1;
- ret->uri = wine_uri;
- ret->request_method = METHOD_GET;
- list_init(&ret->response_headers);
- list_init(&ret->request_headers);
+ nsres = create_nschannel(wine_uri, &ret);
+ nsIURL_Release(&wine_uri->nsIURL_iface);
+ if(NS_FAILED(nsres))
+ return nsres;
nsIURI_AddRef(aURI);
ret->original_uri = aURI;
- hres = IUri_GetScheme(wine_uri->uri, &ret->url_scheme);
- if(FAILED(hres))
- ret->url_scheme = URL_SCHEME_UNKNOWN;
-
*_retval = (nsIChannel*)&ret->nsIHttpChannel_iface;
return NS_OK;
}
More information about the wine-cvs
mailing list