Jacek Caban : mshtml: Simplify handling origin URI charset.

Alexandre Julliard julliard at winehq.org
Fri Mar 8 19:41:10 CST 2019


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Mar  8 13:49:41 2019 +0100

mshtml: Simplify handling origin URI charset.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/nsio.c | 30 +++++++++++-------------------
 1 file changed, 11 insertions(+), 19 deletions(-)

diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 436f9bf..4aee21a 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -60,7 +60,6 @@ struct  nsWineURI {
     nsChannelBSC *channel_bsc;
     IUri *uri;
     IUriBuilder *uri_builder;
-    char *origin_charset;
     BOOL is_mutable;
     DWORD scheme;
 };
@@ -154,7 +153,7 @@ static HRESULT combine_url(IUri *base_uri, const WCHAR *rel_url, IUri **ret)
     return hres;
 }
 
-static nsresult create_nsuri(IUri*,const char*,nsWineURI**);
+static nsresult create_nsuri(IUri*,nsWineURI**);
 
 static const char *debugstr_nsacstr(const nsACString *nsstr)
 {
@@ -316,7 +315,7 @@ HRESULT load_nsuri(HTMLOuterWindow *window, nsWineURI *uri, nsIInputStream *post
 
     if(window->uri_nofrag) {
         nsWineURI *referrer_uri;
-        nsres = create_nsuri(window->uri_nofrag, NULL, &referrer_uri);
+        nsres = create_nsuri(window->uri_nofrag, &referrer_uri);
         if(NS_SUCCEEDED(nsres)) {
             nsres = nsIDocShellLoadInfo_SetReferrer(load_info, (nsIURI*)&referrer_uri->nsIFileURL_iface);
             assert(nsres == NS_OK);
@@ -2265,7 +2264,6 @@ static nsrefcnt NSAPI nsURI_Release(nsIFileURL *iface)
             IUri_Release(This->uri);
         if(This->uri_builder)
             IUriBuilder_Release(This->uri_builder);
-        heap_free(This->origin_charset);
         heap_free(This);
     }
 
@@ -2762,7 +2760,7 @@ static nsresult NSAPI nsURI_Clone(nsIFileURL *iface, nsIURI **_retval)
     if(!ensure_uri(This))
         return NS_ERROR_UNEXPECTED;
 
-    nsres = create_nsuri(This->uri, This->origin_charset, &wine_uri);
+    nsres = create_nsuri(This->uri, &wine_uri);
     if(NS_FAILED(nsres)) {
         WARN("create_nsuri failed: %08x\n", nsres);
         return nsres;
@@ -2847,7 +2845,7 @@ static nsresult NSAPI nsURI_GetOriginCharset(nsIFileURL *iface, nsACString *aOri
 
     TRACE("(%p)->(%p)\n", This, aOriginCharset);
 
-    nsACString_SetData(aOriginCharset, This->origin_charset);
+    nsACString_SetData(aOriginCharset, NULL); /* assume utf-8, we store URI as utf-16 anyway */
     return NS_OK;
 }
 
@@ -2944,7 +2942,7 @@ static nsresult NSAPI nsURI_CloneIgnoreRef(nsIFileURL *iface, nsIURI **_retval)
     if(!uri)
         return NS_ERROR_FAILURE;
 
-    nsres = create_nsuri(uri, This->origin_charset, &wine_uri);
+    nsres = create_nsuri(uri, &wine_uri);
     IUri_Release(uri);
     if(NS_FAILED(nsres)) {
         WARN("create_nsuri failed: %08x\n", nsres);
@@ -3339,7 +3337,7 @@ static const nsIStandardURLVtbl nsStandardURLVtbl = {
     nsStandardURL_SetDefaultPort
 };
 
-static nsresult create_nsuri(IUri *iuri, const char *origin_charset, nsWineURI **_retval)
+static nsresult create_nsuri(IUri *iuri, nsWineURI **_retval)
 {
     nsWineURI *ret;
     HRESULT hres;
@@ -3360,14 +3358,6 @@ static nsresult create_nsuri(IUri *iuri, const char *origin_charset, nsWineURI *
     if(FAILED(hres))
         ret->scheme = URL_SCHEME_UNKNOWN;
 
-    if(origin_charset && *origin_charset && strcmp(origin_charset, "UTF-8")) {
-        ret->origin_charset = heap_strdupA(origin_charset);
-        if(!ret->origin_charset) {
-            nsIFileURL_Release(&ret->nsIFileURL_iface);
-            return NS_ERROR_OUT_OF_MEMORY;
-        }
-    }
-
     TRACE("retval=%p\n", ret);
     *_retval = ret;
     return NS_OK;
@@ -3375,7 +3365,9 @@ static nsresult create_nsuri(IUri *iuri, const char *origin_charset, nsWineURI *
 
 HRESULT create_doc_uri(IUri *iuri, nsWineURI **ret)
 {
-    return create_nsuri(iuri, NULL, ret);
+    nsresult nsres;
+    nsres = create_nsuri(iuri, ret);
+    return NS_SUCCEEDED(nsres) ? S_OK : E_OUTOFMEMORY;
 }
 
 static nsresult create_nschannel(nsWineURI *uri, nsChannel **ret)
@@ -3416,7 +3408,7 @@ HRESULT create_redirect_nschannel(const WCHAR *url, nsChannel *orig_channel, nsC
     if(FAILED(hres))
         return hres;
 
-    nsres = create_nsuri(iuri, NULL, &uri);
+    nsres = create_nsuri(iuri, &uri);
     IUri_Release(iuri);
     if(NS_FAILED(nsres))
         return E_FAIL;
@@ -3789,7 +3781,7 @@ static nsresult NSAPI nsIOServiceHook_NewURI(nsIIOServiceHook *iface, const nsAC
     if(FAILED(hres))
         return NS_SUCCESS_DEFAULT_ACTION;
 
-    nsres = create_nsuri(urlmon_uri, NULL, &wine_uri);
+    nsres = create_nsuri(urlmon_uri, &wine_uri);
     IUri_Release(urlmon_uri);
     if(base_wine_uri)
         nsIFileURL_Release(&base_wine_uri->nsIFileURL_iface);




More information about the wine-cvs mailing list