Jacek Caban : mshtml: Use IUri in nsIURI::Equals implementation.

Alexandre Julliard julliard at winehq.org
Thu Oct 21 10:50:50 CDT 2010


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Oct 21 15:50:27 2010 +0200

mshtml: Use IUri in nsIURI::Equals implementation.

---

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

diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index fbfde61..80d5649 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -1971,25 +1971,28 @@ static nsresult NSAPI nsURI_SetPath(nsIURL *iface, const nsACString *aPath)
 static nsresult NSAPI nsURI_Equals(nsIURL *iface, nsIURI *other, PRBool *_retval)
 {
     nsWineURI *This = NSURI_THIS(iface);
-    nsWineURI *wine_uri;
+    nsWineURI *other_obj;
     nsresult nsres;
+    HRESULT hres;
 
     TRACE("(%p)->(%p %p)\n", This, other, _retval);
 
-    if(This->nsuri)
-        return nsIURI_Equals(This->nsuri, other, _retval);
-
-    nsres = nsIURI_QueryInterface(other, &IID_nsWineURI, (void**)&wine_uri);
+    nsres = nsIURI_QueryInterface(other, &IID_nsWineURI, (void**)&other_obj);
     if(NS_FAILED(nsres)) {
         TRACE("Could not get nsWineURI interface\n");
         *_retval = FALSE;
         return NS_OK;
     }
 
-    *_retval = wine_uri->wine_url && !UrlCompareW(This->wine_url, wine_uri->wine_url, TRUE);
-    nsIURI_Release(NSURI(wine_uri));
+    if(ensure_uri(This) && ensure_uri(other_obj)) {
+        hres = IUri_IsEqual(This->uri, other_obj->uri, _retval);
+        nsres = SUCCEEDED(hres) ? NS_OK : NS_ERROR_FAILURE;
+    }else {
+        nsres = NS_ERROR_UNEXPECTED;
+    }
 
-    return NS_OK;
+    nsIURI_Release(NSURI(other_obj));
+    return nsres;
 }
 
 static nsresult NSAPI nsURI_SchemeIs(nsIURL *iface, const char *scheme, PRBool *_retval)




More information about the wine-cvs mailing list