Jacek Caban : mshtml: HTMLWindow_item code clean up.
Alexandre Julliard
julliard at winehq.org
Thu Nov 3 13:10:15 CDT 2011
Module: wine
Branch: master
Commit: adafcda41c5c87e6715dc2f8262dbb404f5860b1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=adafcda41c5c87e6715dc2f8262dbb404f5860b1
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Nov 3 19:24:09 2011 +0100
mshtml: HTMLWindow_item code clean up.
---
dlls/mshtml/htmlwindow.c | 55 +++++++++++++++++++++-------------------------
1 files changed, 25 insertions(+), 30 deletions(-)
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index ea02cb1..b0b872c 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -323,8 +323,8 @@ static HRESULT WINAPI HTMLWindow2_item(IHTMLWindow2 *iface, VARIANT *pvarIndex,
{
HTMLWindow *This = impl_from_IHTMLWindow2(iface);
nsIDOMWindowCollection *nsFrames;
- HTMLWindow *window;
- HRESULT hres;
+ HTMLWindow *window = NULL;
+ HRESULT hres = S_OK;
nsresult nsres;
TRACE("(%p)->(%p %p)\n", This, pvarIndex, pvarResult);
@@ -335,29 +335,28 @@ static HRESULT WINAPI HTMLWindow2_item(IHTMLWindow2 *iface, VARIANT *pvarIndex,
return E_FAIL;
}
- if(V_VT(pvarIndex) == VT_I4) {
+ switch(V_VT(pvarIndex)) {
+ case VT_I4: {
int index = V_I4(pvarIndex);
TRACE("Getting index %d\n", index);
- if(index < 0) {
- hres = DISP_E_MEMBERNOTFOUND;
- goto cleanup;
- }
+ if(index < 0)
+ break;
hres = get_frame_by_index(nsFrames, index, &window);
- if(FAILED(hres))
- goto cleanup;
- }else if(V_VT(pvarIndex) == VT_UINT) {
+ break;
+ }
+ case VT_UINT: {
unsigned int index = V_UINT(pvarIndex);
TRACE("Getting index %u\n", index);
hres = get_frame_by_index(nsFrames, index, &window);
- if(FAILED(hres))
- goto cleanup;
- }else if(V_VT(pvarIndex) == VT_BSTR) {
+ break;
+ }
+ case VT_BSTR: {
BSTR str = V_BSTR(pvarIndex);
PRUint32 length, i;
TRACE("Getting name %s\n", wine_dbgstr_w(str));
- nsres = nsIDOMWindowCollection_GetLength(nsFrames, &length);
+ nsIDOMWindowCollection_GetLength(nsFrames, &length);
window = NULL;
for(i = 0; i < length && !window; ++i) {
@@ -369,7 +368,7 @@ static HRESULT WINAPI HTMLWindow2_item(IHTMLWindow2 *iface, VARIANT *pvarIndex,
if(NS_FAILED(nsres)) {
FIXME("nsIDOMWindowCollection_Item failed: 0x%08x\n", nsres);
hres = E_FAIL;
- goto cleanup;
+ break;
}
cur_window = nswindow_to_window(nsWindow);
@@ -379,7 +378,7 @@ static HRESULT WINAPI HTMLWindow2_item(IHTMLWindow2 *iface, VARIANT *pvarIndex,
hres = IHTMLElement_get_id(&cur_window->frame_element->element.IHTMLElement_iface, &id);
if(FAILED(hres)) {
FIXME("IHTMLElement_get_id failed: 0x%08x\n", hres);
- goto cleanup;
+ break;
}
if(!strcmpW(id, str))
@@ -387,26 +386,22 @@ static HRESULT WINAPI HTMLWindow2_item(IHTMLWindow2 *iface, VARIANT *pvarIndex,
SysFreeString(id);
}
-
- if(!window) {
- hres = DISP_E_MEMBERNOTFOUND;
- goto cleanup;
- }
- }else {
+ break;
+ }
+ default:
hres = E_INVALIDARG;
- goto cleanup;
}
+ nsIDOMWindowCollection_Release(nsFrames);
+ if(FAILED(hres))
+ return hres;
+ if(!window)
+ return DISP_E_MEMBERNOTFOUND;
+
IHTMLWindow2_AddRef(&window->IHTMLWindow2_iface);
V_VT(pvarResult) = VT_DISPATCH;
V_DISPATCH(pvarResult) = (IDispatch*)window;
-
- hres = S_OK;
-
-cleanup:
- nsIDOMWindowCollection_Release(nsFrames);
-
- return hres;
+ return S_OK;
}
static HRESULT WINAPI HTMLWindow2_get_length(IHTMLWindow2 *iface, LONG *p)
More information about the wine-cvs
mailing list