Jacek Caban : mshtml: Fixed HTMLElementCollectionEnum_Next implementation for NULL pCeltFetched.
Alexandre Julliard
julliard at winehq.org
Tue Apr 22 13:23:20 CDT 2014
Module: wine
Branch: master
Commit: 3ec1da918ca8147a5780564fb63d606b0fd8610f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3ec1da918ca8147a5780564fb63d606b0fd8610f
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Apr 22 16:23:01 2014 +0200
mshtml: Fixed HTMLElementCollectionEnum_Next implementation for NULL pCeltFetched.
---
dlls/mshtml/htmlelemcol.c | 3 ++-
dlls/mshtml/tests/dom.c | 12 ++++++++++--
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/htmlelemcol.c b/dlls/mshtml/htmlelemcol.c
index e9cd1af..5819d44 100644
--- a/dlls/mshtml/htmlelemcol.c
+++ b/dlls/mshtml/htmlelemcol.c
@@ -160,7 +160,8 @@ static HRESULT WINAPI HTMLElementCollectionEnum_Next(IEnumVARIANT *iface, ULONG
}
This->iter += fetched;
- *pCeltFetched = fetched;
+ if(pCeltFetched)
+ *pCeltFetched = fetched;
return fetched == celt ? S_OK : S_FALSE;
}
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 65ca1d3..3a6380a 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -2163,9 +2163,10 @@ static void _test_elem_collection(unsigned line, IUnknown *unk,
fetched = 0;
V_VT(&v) = VT_ERROR;
- hres = IEnumVARIANT_Next(enum_var, 1, &v, &fetched);
+ hres = IEnumVARIANT_Next(enum_var, 1, &v, i ? &fetched : NULL);
ok_(__FILE__,line)(hres == S_OK, "Next failed: %08x\n", hres);
- ok_(__FILE__,line)(fetched == 1, "fetched = %d\n", fetched);
+ if(i)
+ ok_(__FILE__,line)(fetched == 1, "fetched = %d\n", fetched);
ok_(__FILE__,line)(V_VT(&v) == VT_DISPATCH && V_DISPATCH(&v), "V_VT(v) = %d\n", V_VT(&v));
ok_(__FILE__,line)(iface_cmp((IUnknown*)disp, (IUnknown*)V_DISPATCH(&v)), "disp != V_DISPATCH(v)\n");
IDispatch_Release(V_DISPATCH(&v));
@@ -2183,6 +2184,13 @@ static void _test_elem_collection(unsigned line, IUnknown *unk,
hres = IEnumVARIANT_Reset(enum_var);
ok_(__FILE__,line)(hres == S_OK, "Reset failed: %08x\n", hres);
+ fetched = 0xdeadbeef;
+ V_VT(&v) = VT_BOOL;
+ hres = IEnumVARIANT_Next(enum_var, 0, &v, &fetched);
+ ok_(__FILE__,line)(hres == S_OK, "Next returned %08x, expected S_FALSE\n", hres);
+ ok_(__FILE__,line)(fetched == 0, "fetched = %d\n", fetched);
+ ok_(__FILE__,line)(V_VT(&v) == VT_BOOL, "V_VT(v) = %d\n", V_VT(&v));
+
hres = IEnumVARIANT_Skip(enum_var, len > 2 ? len-2 : 0);
ok_(__FILE__,line)(hres == S_OK, "Skip failed: %08x\n", hres);
More information about the wine-cvs
mailing list