Andrew Nguyen : mshtml: Accept NULL SAFEARRAY pointers in IHTMLDocument2:: write(ln).

Alexandre Julliard julliard at winehq.org
Tue Feb 9 10:37:57 CST 2010


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

Author: Andrew Nguyen <arethusa26 at gmail.com>
Date:   Tue Feb  9 09:54:03 2010 -0600

mshtml: Accept NULL SAFEARRAY pointers in IHTMLDocument2::write(ln).

---

 dlls/mshtml/htmldoc.c   |    3 +++
 dlls/mshtml/tests/dom.c |   17 +++++++++++++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 538a02f..f99ab29 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -776,6 +776,9 @@ static HRESULT document_write(HTMLDocument *This, SAFEARRAY *psarray, BOOL ln)
         return E_UNEXPECTED;
     }
 
+    if (!psarray)
+        return S_OK;
+
     if(psarray->cDims != 1) {
         FIXME("cDims=%d\n", psarray->cDims);
         return E_INVALIDARG;
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index c0128a6..7fd9262 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -5921,6 +5921,22 @@ static void test_create_elems(IHTMLDocument2 *doc)
     IHTMLElement_Release(body);
 }
 
+static void test_null_write(IHTMLDocument2 *doc)
+{
+    HRESULT hres;
+
+    doc_write(doc, FALSE, NULL);
+    doc_write(doc, TRUE, NULL);
+
+    hres = IHTMLDocument2_write(doc, NULL);
+    ok(hres == S_OK,
+       "Expected IHTMLDocument2::write to return S_OK, got 0x%08x\n", hres);
+
+    hres = IHTMLDocument2_writeln(doc, NULL);
+    ok(hres == S_OK,
+       "Expected IHTMLDocument2::writeln to return S_OK, got 0x%08x\n", hres);
+}
+
 static void test_exec(IUnknown *unk, const GUID *grpid, DWORD cmdid, VARIANT *in, VARIANT *out)
 {
     IOleCommandTarget *cmdtrg;
@@ -6395,6 +6411,7 @@ START_TEST(dom)
     run_domtest(elem_test2_str, test_elems2);
     run_domtest(doc_blank, test_create_elems);
     run_domtest(doc_blank, test_defaults);
+    run_domtest(doc_blank, test_null_write);
     run_domtest(indent_test_str, test_indent);
     run_domtest(cond_comment_str, test_cond_comment);
     run_domtest(frameset_str, test_frameset);




More information about the wine-cvs mailing list