Zebediah Figura : kernelbase: Return void from parse_url().

Alexandre Julliard julliard at winehq.org
Wed Feb 16 15:30:22 CST 2022


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

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Tue Feb 15 21:52:11 2022 -0600

kernelbase: Return void from parse_url().

If we cannot parse a scheme, the entire parsed_url structure will be zero, in
which case we will always return S_FALSE from UrlGetPartW().

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernelbase/path.c | 22 +++++-----------------
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/dlls/kernelbase/path.c b/dlls/kernelbase/path.c
index 35cce74ab24..be487e71a3a 100644
--- a/dlls/kernelbase/path.c
+++ b/dlls/kernelbase/path.c
@@ -4191,16 +4191,16 @@ static const WCHAR *parse_url_element( const WCHAR *url, const WCHAR *separators
     return url + wcslen( url );
 }
 
-static LONG parse_url(const WCHAR *url, struct parsed_url *pl)
+static void parse_url( const WCHAR *url, struct parsed_url *pl )
 {
     const WCHAR *work;
 
     memset(pl, 0, sizeof(*pl));
     pl->scheme = url;
     work = scan_url(pl->scheme, &pl->scheme_len, SCHEME);
-    if (!*work || (*work != ':')) goto ErrorExit;
+    if (!*work || (*work != ':')) return;
     work++;
-    if ((*work != '/') || (*(work+1) != '/')) goto SuccessExit;
+    if ((*work != '/') || (*(work+1) != '/')) return;
 
     pl->username = work + 2;
     work = parse_url_element( pl->username, L":@/\\?#" );
@@ -4249,17 +4249,6 @@ static LONG parse_url(const WCHAR *url, struct parsed_url *pl)
         ++pl->query;
         pl->query_len = lstrlenW(pl->query);
     }
-
-  SuccessExit:
-    TRACE("parse successful: scheme=%p(%ld), user=%p(%ld), pass=%p(%ld), host=%p(%ld), port=%p(%ld), query=%p(%ld)\n",
-            pl->scheme, pl->scheme_len, pl->username, pl->username_len, pl->password, pl->password_len, pl->hostname,
-            pl->hostname_len, pl->port, pl->port_len, pl->query, pl->query_len);
-
-    return S_OK;
-
-  ErrorExit:
-    FIXME("failed to parse %s\n", debugstr_w(url));
-    return E_INVALIDARG;
 }
 
 HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD part, DWORD flags)
@@ -4267,7 +4256,6 @@ HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD p
     DWORD scheme, size, schsize;
     LPCWSTR addr, schaddr;
     struct parsed_url pl;
-    HRESULT hr;
 
     TRACE("%s, %p, %p(%ld), %#lx, %#lx\n", wine_dbgstr_w(url), out, out_len, *out_len, part, flags);
 
@@ -4280,7 +4268,7 @@ HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD p
     else
         scheme = get_scheme_code(url, addr - url);
 
-    hr = parse_url(url, &pl);
+    parse_url(url, &pl);
 
     switch (scheme)
     {
@@ -4411,7 +4399,7 @@ HRESULT WINAPI UrlGetPartW(const WCHAR *url, WCHAR *out, DWORD *out_len, DWORD p
     }
     TRACE("len=%ld %s\n", *out_len, wine_dbgstr_w(out));
 
-    return hr;
+    return S_OK;
 }
 
 BOOL WINAPI UrlIsA(const char *url, URLIS Urlis)




More information about the wine-cvs mailing list