Jacek Caban : mshtml: Don't use wine_uri in nsIIOService:: NewChannelFromURI implementation.
Alexandre Julliard
julliard at winehq.org
Thu Nov 25 11:18:56 CST 2010
Module: wine
Branch: master
Commit: 286249031c1b0ac6081b573759772cd415696bbc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=286249031c1b0ac6081b573759772cd415696bbc
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Nov 25 13:56:03 2010 +0100
mshtml: Don't use wine_uri in nsIIOService::NewChannelFromURI implementation.
---
dlls/mshtml/nsio.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 01da4ac..13085e6 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -2829,10 +2829,10 @@ static nsresult NSAPI nsIOService_NewFileURI(nsIIOService *iface, nsIFile *aFile
static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI *aURI,
nsIChannel **_retval)
{
- PARSEDURLW parsed_url = {sizeof(PARSEDURLW)};
nsChannel *ret;
nsWineURI *wine_uri;
nsresult nsres;
+ HRESULT hres;
TRACE("(%p %p)\n", aURI, _retval);
@@ -2842,6 +2842,11 @@ static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI
return nsIIOService_NewChannelFromURI(nsio, aURI, _retval);
}
+ if(!ensure_uri(wine_uri)) {
+ nsIURI_Release(NSURI(wine_uri));
+ return NS_ERROR_UNEXPECTED;
+ }
+
ret = heap_alloc_zero(sizeof(nsChannel));
ret->lpHttpChannelVtbl = &nsChannelVtbl;
@@ -2855,8 +2860,10 @@ static nsresult NSAPI nsIOService_NewChannelFromURI(nsIIOService *iface, nsIURI
nsIURI_AddRef(aURI);
ret->original_uri = aURI;
- ret->url_scheme = wine_uri->wine_url && SUCCEEDED(ParseURLW(wine_uri->wine_url, &parsed_url))
- ? parsed_url.nScheme : URL_SCHEME_UNKNOWN;
+
+ hres = IUri_GetScheme(wine_uri->uri, &ret->url_scheme);
+ if(FAILED(hres))
+ ret->url_scheme = URL_SCHEME_UNKNOWN;
*_retval = NSCHANNEL(ret);
return NS_OK;
More information about the wine-cvs
mailing list