Thomas Mullaly : urlmon: set_builder_component now handles setting the modified property flag.

Alexandre Julliard julliard at winehq.org
Tue Sep 7 11:22:55 CDT 2010


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

Author: Thomas Mullaly <thomas.mullaly at gmail.com>
Date:   Mon Sep  6 15:47:01 2010 -0400

urlmon: set_builder_component now handles setting the modified property flag.

---

 dlls/urlmon/uri.c |   25 ++++++++++++-------------
 1 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/dlls/urlmon/uri.c b/dlls/urlmon/uri.c
index ef6ba22..c05c0fa 100644
--- a/dlls/urlmon/uri.c
+++ b/dlls/urlmon/uri.c
@@ -3292,9 +3292,11 @@ static HRESULT get_builder_component(LPWSTR *component, DWORD *component_len,
 /* Allocates 'component' and copies the string from 'new_value' into 'component'.
  * If 'prefix' is set and 'new_value' isn't NULL, then it checks if 'new_value'
  * starts with 'prefix'. If it doesn't then 'prefix' is prepended to 'component'.
+ *
+ * If everything is successful, then will set 'success_flag' in 'flags'.
  */
 static HRESULT set_builder_component(LPWSTR *component, DWORD *component_len, LPCWSTR new_value,
-                                     WCHAR prefix)
+                                     WCHAR prefix, DWORD *flags, DWORD success_flag)
 {
     if(*component)
         heap_free(*component);
@@ -3323,6 +3325,7 @@ static HRESULT set_builder_component(LPWSTR *component, DWORD *component_len, LP
         *component_len = len+pos;
     }
 
+    *flags |= success_flag;
     return S_OK;
 }
 
@@ -4571,36 +4574,32 @@ static HRESULT WINAPI UriBuilder_SetFragment(IUriBuilder *iface, LPCWSTR pwzNewV
 {
     UriBuilder *This = URIBUILDER_THIS(iface);
     TRACE("(%p)->(%s)\n", This, debugstr_w(pwzNewValue));
-
-    This->modified_props |= Uri_HAS_FRAGMENT;
-    return set_builder_component(&This->fragment, &This->fragment_len, pwzNewValue, '#');
+    return set_builder_component(&This->fragment, &This->fragment_len, pwzNewValue, '#',
+                                 &This->modified_props, Uri_HAS_FRAGMENT);
 }
 
 static HRESULT WINAPI UriBuilder_SetHost(IUriBuilder *iface, LPCWSTR pwzNewValue)
 {
     UriBuilder *This = URIBUILDER_THIS(iface);
     TRACE("(%p)->(%s)\n", This, debugstr_w(pwzNewValue));
-
-    This->modified_props |= Uri_HAS_HOST;
-    return set_builder_component(&This->host, &This->host_len, pwzNewValue, 0);
+    return set_builder_component(&This->host, &This->host_len, pwzNewValue, 0,
+                                 &This->modified_props, Uri_HAS_HOST);
 }
 
 static HRESULT WINAPI UriBuilder_SetPassword(IUriBuilder *iface, LPCWSTR pwzNewValue)
 {
     UriBuilder *This = URIBUILDER_THIS(iface);
     TRACE("(%p)->(%s)\n", This, debugstr_w(pwzNewValue));
-
-    This->modified_props |= Uri_HAS_PASSWORD;
-    return set_builder_component(&This->password, &This->password_len, pwzNewValue, 0);
+    return set_builder_component(&This->password, &This->password_len, pwzNewValue, 0,
+                                 &This->modified_props, Uri_HAS_PASSWORD);
 }
 
 static HRESULT WINAPI UriBuilder_SetPath(IUriBuilder *iface, LPCWSTR pwzNewValue)
 {
     UriBuilder *This = URIBUILDER_THIS(iface);
     TRACE("(%p)->(%s)\n", This, debugstr_w(pwzNewValue));
-
-    This->modified_props |= Uri_HAS_PATH;
-    return set_builder_component(&This->path, &This->path_len, pwzNewValue, 0);
+    return set_builder_component(&This->path, &This->path_len, pwzNewValue, 0,
+                                 &This->modified_props, Uri_HAS_PATH);
 }
 
 static HRESULT WINAPI UriBuilder_SetPort(IUriBuilder *iface, BOOL fHasPort, DWORD dwNewValue)




More information about the wine-cvs mailing list