Module: wine Branch: master Commit: 286249031c1b0ac6081b573759772cd415696bbc URL: http://source.winehq.org/git/wine.git/?a=commit;h=286249031c1b0ac6081b573759...
Author: Jacek Caban jacek@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;