Jacek Caban : mshtml: Use stored nsdoc in IHTMLDocument3::getElementById.
Alexandre Julliard
julliard at winehq.org
Thu Oct 9 07:42:52 CDT 2008
Module: wine
Branch: master
Commit: f1ff6b0993d81aa1296f8f55ba9b7f3c2d743e92
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f1ff6b0993d81aa1296f8f55ba9b7f3c2d743e92
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Oct 8 13:29:56 2008 -0500
mshtml: Use stored nsdoc in IHTMLDocument3::getElementById.
---
dlls/mshtml/htmldoc3.c | 35 +++++++++++++++++------------------
1 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/dlls/mshtml/htmldoc3.c b/dlls/mshtml/htmldoc3.c
index d636834..b0efb7c 100644
--- a/dlls/mshtml/htmldoc3.c
+++ b/dlls/mshtml/htmldoc3.c
@@ -421,37 +421,36 @@ static HRESULT WINAPI HTMLDocument3_getElementById(IHTMLDocument3 *iface, BSTR v
IHTMLElement **pel)
{
HTMLDocument *This = HTMLDOC3_THIS(iface);
- nsIDOMDocument *nsdoc = NULL;
- nsIDOMElement *nselem = NULL;
+ nsIDOMElement *nselem;
HTMLDOMNode *node;
nsAString id_str;
nsresult nsres;
TRACE("(%p)->(%s %p)\n", This, debugstr_w(v), pel);
- *pel = NULL;
-
- if(!This->nscontainer)
- return S_OK;
-
- nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
- if(NS_FAILED(nsres) || !nsdoc)
- return S_OK;
+ if(!This->nsdoc) {
+ WARN("NULL nsdoc\n");
+ return E_UNEXPECTED;
+ }
nsAString_Init(&id_str, v);
- nsIDOMDocument_GetElementById(nsdoc, &id_str, &nselem);
- nsIDOMDocument_Release(nsdoc);
+ nsres = nsIDOMHTMLDocument_GetElementById(This->nsdoc, &id_str, &nselem);
nsAString_Finish(&id_str);
+ if(FAILED(nsres)) {
+ ERR("GetElementById failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ if(nselem) {
+ node = get_node(This, (nsIDOMNode*)nselem, TRUE);
+ nsIDOMElement_Release(nselem);
- if(!nselem) {
+ IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)pel);
+ }else {
*pel = NULL;
- return S_OK;
}
- node = get_node(This, (nsIDOMNode*)nselem, TRUE);
- nsIDOMElement_Release(nselem);
-
- return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)pel);
+ return S_OK;
}
More information about the wine-cvs
mailing list