Adam Martinson : msxml3: Fix a couple incorrect uses of VariantChangeType() .
Alexandre Julliard
julliard at winehq.org
Tue Jun 21 12:25:40 CDT 2011
Module: wine
Branch: master
Commit: 5ab513bd9e8aa8532986e08c336095445c3e5f14
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5ab513bd9e8aa8532986e08c336095445c3e5f14
Author: Adam Martinson <amartinson at codeweavers.com>
Date: Mon Jun 20 00:25:12 2011 -0500
msxml3: Fix a couple incorrect uses of VariantChangeType().
---
dlls/msxml3/element.c | 16 +++++++++-------
dlls/msxml3/httprequest.c | 7 ++++---
2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index 5071244..f84dcb5 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -761,21 +761,24 @@ static HRESULT WINAPI domelem_put_nodeTypedValue(
VARIANT value)
{
domelem *This = impl_from_IXMLDOMElement( iface );
- VARIANT type;
+ XDR_DT dt;
HRESULT hr;
TRACE("(%p)->(%s)\n", This, debugstr_variant(&value));
+ dt = element_get_dt(get_element(This));
/* for untyped node coerce to BSTR and set */
- if (IXMLDOMElement_get_dataType(iface, &type) == S_FALSE)
+ if (dt == DT_INVALID)
{
if (V_VT(&value) != VT_BSTR)
{
- hr = VariantChangeType(&value, &value, 0, VT_BSTR);
+ VARIANT content;
+ VariantInit(&content);
+ hr = VariantChangeType(&content, &value, 0, VT_BSTR);
if (hr == S_OK)
{
- hr = node_set_content(&This->node, V_BSTR(&value));
- VariantClear(&value);
+ hr = node_set_content(&This->node, V_BSTR(&content));
+ VariantClear(&content);
}
}
else
@@ -783,8 +786,7 @@ static HRESULT WINAPI domelem_put_nodeTypedValue(
}
else
{
- FIXME("not implemented for typed nodes. type %s\n", debugstr_w(V_BSTR(&value)));
- VariantClear(&type);
+ FIXME("not implemented for dt:%s\n", dt_to_str(dt));
return E_NOTIMPL;
}
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
index d49840f..4435951 100644
--- a/dlls/msxml3/httprequest.c
+++ b/dlls/msxml3/httprequest.c
@@ -666,7 +666,7 @@ static HRESULT WINAPI httprequest_open(IXMLHTTPRequest *iface, BSTR method, BSTR
{
httprequest *This = impl_from_IXMLHTTPRequest( iface );
HRESULT hr;
- VARIANT str;
+ VARIANT str, is_async;
TRACE("(%p)->(%s %s %s)\n", This, debugstr_w(method), debugstr_w(url),
debugstr_variant(&async));
@@ -700,8 +700,9 @@ static HRESULT WINAPI httprequest_open(IXMLHTTPRequest *iface, BSTR method, BSTR
This->url = SysAllocString(url);
- hr = VariantChangeType(&async, &async, 0, VT_BOOL);
- This->async = hr == S_OK && V_BOOL(&async) == VARIANT_TRUE;
+ VariantInit(&is_async);
+ hr = VariantChangeType(&is_async, &async, 0, VT_BOOL);
+ This->async = hr == S_OK && V_BOOL(&is_async) == VARIANT_TRUE;
VariantInit(&str);
hr = VariantChangeType(&str, &user, 0, VT_BSTR);
More information about the wine-cvs
mailing list