Jacek Caban : mshtml: Store scheme in nsWineURI instead of nsChannel.

Alexandre Julliard julliard at winehq.org
Fri Jul 20 15:29:59 CDT 2012


Module: wine
Branch: master
Commit: cc533ecc2f06906efd48b8fcb4239fafdd021c67
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cc533ecc2f06906efd48b8fcb4239fafdd021c67

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jul 20 12:36:02 2012 +0200

mshtml: Store scheme in nsWineURI instead of nsChannel.

---

 dlls/mshtml/binding.h |    1 -
 dlls/mshtml/nsio.c    |   13 +++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/mshtml/binding.h b/dlls/mshtml/binding.h
index 7d70dc9..040fcf2 100644
--- a/dlls/mshtml/binding.h
+++ b/dlls/mshtml/binding.h
@@ -47,7 +47,6 @@ typedef struct {
     REQUEST_METHOD request_method;
     struct list response_headers;
     struct list request_headers;
-    UINT url_scheme;
 } nsChannel;
 
 typedef struct BSCallbackVtbl BSCallbackVtbl;
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 1be94e8..d59e161 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -65,6 +65,7 @@ struct  nsWineURI {
     IUriBuilder *uri_builder;
     BOOL is_doc_uri;
     BOOL is_mutable;
+    DWORD scheme;
 };
 
 static BOOL ensure_uri(nsWineURI *This)
@@ -321,7 +322,7 @@ static void set_uri_window(nsWineURI *This, HTMLOuterWindow *window)
 
 static inline BOOL is_http_channel(nsChannel *This)
 {
-    return This->url_scheme == URL_SCHEME_HTTP || This->url_scheme == URL_SCHEME_HTTPS;
+    return This->uri->scheme == URL_SCHEME_HTTP || This->uri->scheme == URL_SCHEME_HTTPS;
 }
 
 static http_header_t *find_http_header(struct list *headers, const WCHAR *name, int len)
@@ -2814,6 +2815,7 @@ static const nsIStandardURLVtbl nsStandardURLVtbl = {
 static nsresult create_nsuri(IUri *iuri, HTMLOuterWindow *window, NSContainer *container, nsWineURI **_retval)
 {
     nsWineURI *ret = heap_alloc_zero(sizeof(nsWineURI));
+    HRESULT hres;
 
     ret->nsIURL_iface.lpVtbl = &nsURLVtbl;
     ret->nsIStandardURL_iface.lpVtbl = &nsStandardURLVtbl;
@@ -2826,6 +2828,10 @@ static nsresult create_nsuri(IUri *iuri, HTMLOuterWindow *window, NSContainer *c
     IUri_AddRef(iuri);
     ret->uri = iuri;
 
+    hres = IUri_GetScheme(iuri, &ret->scheme);
+    if(FAILED(hres))
+        ret->scheme = URL_SCHEME_UNKNOWN;
+
     TRACE("retval=%p\n", ret);
     *_retval = ret;
     return NS_OK;
@@ -2856,7 +2862,6 @@ HRESULT create_doc_uri(HTMLOuterWindow *window, WCHAR *url, nsWineURI **ret)
 static nsresult create_nschannel(nsWineURI *uri, nsChannel **ret)
 {
     nsChannel *channel;
-    HRESULT hres;
 
     if(!ensure_uri(uri))
         return NS_ERROR_UNEXPECTED;
@@ -2876,10 +2881,6 @@ static nsresult create_nschannel(nsWineURI *uri, nsChannel **ret)
     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;
 }




More information about the wine-cvs mailing list