Module: wine Branch: master Commit: c481fb4bb8a8b71265d83b6a4b25454fac50aab5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c481fb4bb8a8b71265d83b6a4b...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Nov 14 14:42:55 2010 +0100
mshtml: Correctly handle NULL nsdoc in IHTMLDocument2::get_body.
---
dlls/mshtml/htmldoc.c | 16 +++++++--------- dlls/mshtml/tests/dom.c | 7 ++++++- 2 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index 9299170..50a9f67 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -140,19 +140,17 @@ static HRESULT WINAPI HTMLDocument_get_body(IHTMLDocument2 *iface, IHTMLElement HTMLDocument *This = HTMLDOC_THIS(iface); nsIDOMHTMLElement *nsbody = NULL; HTMLDOMNode *node; - nsresult nsres;
TRACE("(%p)->(%p)\n", This, p);
- if(!This->doc_node->nsdoc) { - WARN("NULL nsdoc\n"); - return E_UNEXPECTED; - } + if(This->doc_node->nsdoc) { + nsresult nsres;
- nsres = nsIDOMHTMLDocument_GetBody(This->doc_node->nsdoc, &nsbody); - if(NS_FAILED(nsres)) { - TRACE("Could not get body: %08x\n", nsres); - return E_UNEXPECTED; + nsres = nsIDOMHTMLDocument_GetBody(This->doc_node->nsdoc, &nsbody); + if(NS_FAILED(nsres)) { + TRACE("Could not get body: %08x\n", nsres); + return E_UNEXPECTED; + } }
if(nsbody) { diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index d075e59..ea010c9 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -6972,7 +6972,7 @@ static IHTMLDocument2 *create_docfrag(IHTMLDocument2 *doc)
static void test_docfrag(IHTMLDocument2 *doc) { - IHTMLElement *div, *br; + IHTMLElement *div, *body, *br; IHTMLElementCollection *col; IHTMLDocument2 *frag; HRESULT hres; @@ -6990,6 +6990,11 @@ static void test_docfrag(IHTMLDocument2 *doc)
test_disp((IUnknown*)frag, &DIID_DispHTMLDocument, "[object]");
+ body = (void*)0xdeadbeef; + hres = IHTMLDocument2_get_body(frag, &body); + ok(hres == S_OK, "get_body failed: %08x\n", hres); + ok(!body, "body != NULL\n"); + br = test_create_elem(doc, "BR"); test_node_append_child((IUnknown*)frag, (IUnknown*)br); IHTMLElement_Release(br);