Jacek Caban wrote:
Hi Paul,
Paul Vriens wrote:
Changelog
Fix 2 test failures on IE8
- ok(disp == (void*)0xdeadbeef, "disp=%p\n", disp);
+ ok(disp == (void*)0xdeadbeef ||
+ disp == NULL, /* IE8 */
This test does no longer make sense. It would be better to remove it and
preferably change implementation to match IE8.
Thanks,
Jacek
Hi Jacek,
Something like the attached?
--
Cheers,
Paul.
diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c
index 32b0801..720bbfe 100644
--- a/dlls/mshtml/htmlnode.c
+++ b/dlls/mshtml/htmlnode.c
@@ -157,6 +157,11 @@ static HRESULT WINAPI
HTMLDOMChildrenCollection_item(IHTMLDOMChildrenCollection
TRACE("(%p)->(%d %p)\n", This, index, ppItem);
+ if (ppItem)
+ *ppItem = NULL;
+ else
+ return E_POINTER;
+
nsIDOMNodeList_GetLength(This->nslist, &length);
if(index < 0 || index >= length)
return E_INVALIDARG;
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index aaf1a39..497fc0a 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -4456,15 +4456,17 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLDOMNode_Release(node);
}
- disp = (void*)0xdeadbeef;
+ hres = IHTMLDOMChildrenCollection_item(child_col, length - 1, NULL);
+ ok(hres == E_POINTER, "item failed: %08x, expected E_POINTER\n", hres);
+
+ hres = IHTMLDOMChildrenCollection_item(child_col, length, NULL);
+ ok(hres == E_POINTER, "item failed: %08x, expected E_POINTER\n", hres);
+
hres = IHTMLDOMChildrenCollection_item(child_col, 6000, &disp);
ok(hres == E_INVALIDARG, "item failed: %08x, expected E_INVALIDARG\n",
hres);
- ok(disp == (void*)0xdeadbeef, "disp=%p\n", disp);
- disp = (void*)0xdeadbeef;
hres = IHTMLDOMChildrenCollection_item(child_col, length, &disp);
ok(hres == E_INVALIDARG, "item failed: %08x, expected E_INVALIDARG\n",
hres);
- ok(disp == (void*)0xdeadbeef, "disp=%p\n", disp);
test_child_col_disp(child_col);