From 5629945cb7f8945a6b42dea534d164e4f5115fb6 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 8 Oct 2008 13:29:32 -0500 Subject: [PATCH] mshtml: Use stored nsdoc in IHTMDocument2::get_all. --- dlls/mshtml/htmldoc.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index 9ac6f2ed22a..57a9cfd7a32 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -265,35 +265,29 @@ static HRESULT WINAPI HTMLDocument_get_Script(IHTMLDocument2 *iface, IDispatch * static HRESULT WINAPI HTMLDocument_get_all(IHTMLDocument2 *iface, IHTMLElementCollection **p) { HTMLDocument *This = HTMLDOC_THIS(iface); - nsIDOMDocument *nsdoc = NULL; nsIDOMElement *nselem = NULL; nsresult nsres; TRACE("(%p)->(%p)\n", This, p); - if(!This->nscontainer) { + if(!This->nsdoc) { + WARN("NULL nsdoc\n"); + return E_UNEXPECTED; + } + + nsres = nsIDOMHTMLDocument_GetDocumentElement(This->nsdoc, &nselem); + if(NS_FAILED(nsres)) { + ERR("GetDocumentElement failed: %08x\n", nsres); + return E_FAIL; + } + + if(nselem) { + *p = create_all_collection(get_node(This, (nsIDOMNode*)nselem, TRUE), TRUE); + nsIDOMElement_Release(nselem); + }else { *p = NULL; - return S_OK; } - nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc); - if(NS_FAILED(nsres)) - ERR("GetDocument failed: %08x\n", nsres); - - if(nsdoc) { - nsres = nsIDOMHTMLDocument_GetDocumentElement(nsdoc, &nselem); - if(NS_FAILED(nsres)) - ERR("GetDocumentElement failed: %08x\n", nsres); - } - - if(!nselem) { - *p = NULL; - return S_OK; - } - - *p = create_all_collection(get_node(This, (nsIDOMNode*)nselem, TRUE), TRUE); - - nsIDOMElement_Release(nselem); return S_OK; }