From c451ac27f2e23fc83734aac2e451a0cb753de66d Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 8 Oct 2008 13:29:08 -0500 Subject: [PATCH] mshtml: Use stored nsdoc in IHTMLDocument2::write. --- dlls/mshtml/htmldoc.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index a3d68c6dc2d..07602d9cd60 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -757,8 +757,6 @@ static HRESULT WINAPI HTMLDocument_get_nameProp(IHTMLDocument2 *iface, BSTR *p) static HRESULT WINAPI HTMLDocument_write(IHTMLDocument2 *iface, SAFEARRAY *psarray) { HTMLDocument *This = HTMLDOC_THIS(iface); - nsIDOMDocument *domdoc; - nsIDOMHTMLDocument *nsdoc; nsAString nsstr; VARIANT *var; int i; @@ -767,29 +765,19 @@ static HRESULT WINAPI HTMLDocument_write(IHTMLDocument2 *iface, SAFEARRAY *psarr TRACE("(%p)->(%p)\n", iface, psarray); + if(!This->nsdoc) { + WARN("NULL nsdoc\n"); + return E_UNEXPECTED; + } + if(psarray->cDims != 1) { FIXME("cDims=%d\n", psarray->cDims); return E_INVALIDARG; } - if(!This->nscontainer) - return S_OK; - - nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &domdoc); - if(NS_FAILED(nsres)) { - ERR("GetDocument failed: %08x\n", nsres); - return S_OK; - } - - nsres = nsIDOMDocument_QueryInterface(domdoc, &IID_nsIDOMHTMLDocument, (void**)&nsdoc); - nsIDOMDocument_Release(domdoc); - if(NS_FAILED(nsres)) - return S_OK; - hres = SafeArrayAccessData(psarray, (void**)&var); if(FAILED(hres)) { WARN("SafeArrayAccessData failed: %08x\n", hres); - nsIDOMHTMLDocument_Release(nsdoc); return hres; } @@ -798,7 +786,7 @@ static HRESULT WINAPI HTMLDocument_write(IHTMLDocument2 *iface, SAFEARRAY *psarr for(i=0; i < psarray->rgsabound[0].cElements; i++) { if(V_VT(var+i) == VT_BSTR) { nsAString_SetData(&nsstr, V_BSTR(var+i)); - nsres = nsIDOMHTMLDocument_Write(nsdoc, &nsstr); + nsres = nsIDOMHTMLDocument_Write(This->nsdoc, &nsstr); if(NS_FAILED(nsres)) ERR("Write failed: %08x\n", nsres); }else { @@ -808,7 +796,6 @@ static HRESULT WINAPI HTMLDocument_write(IHTMLDocument2 *iface, SAFEARRAY *psarr nsAString_Finish(&nsstr); SafeArrayUnaccessData(psarray); - nsIDOMHTMLDocument_Release(nsdoc); return S_OK; }