Module: wine Branch: master Commit: 2dcb37e5203c68c4db99f7045729639021d0357a URL: http://source.winehq.org/git/wine.git/?a=commit;h=2dcb37e5203c68c4db99f70457...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Sep 3 12:52:27 2012 +0200
mshtml: Use nsIDOMWindowCollection::NamedItem in get_window_by_name.
---
dlls/mshtml/htmlwindow.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index 1a12acc..2ec4a7f 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -360,6 +360,8 @@ HRESULT get_frame_by_name(HTMLOuterWindow *This, const WCHAR *name, BOOL deep, H { nsIDOMWindowCollection *nsframes; HTMLOuterWindow *window = NULL; + nsIDOMWindow *nswindow; + nsAString name_str; PRUint32 length, i; nsresult nsres; HRESULT hres = S_OK; @@ -370,12 +372,24 @@ HRESULT get_frame_by_name(HTMLOuterWindow *This, const WCHAR *name, BOOL deep, H return E_FAIL; }
+ nsAString_InitDepend(&name_str, name); + nsres = nsIDOMWindowCollection_NamedItem(nsframes, &name_str, &nswindow); + nsAString_Finish(&name_str); + if(NS_FAILED(nsres)) { + nsIDOMWindowCollection_Release(nsframes); + return E_FAIL; + } + + if(nswindow) { + *ret = nswindow_to_window(nswindow); + return S_OK; + } + nsres = nsIDOMWindowCollection_GetLength(nsframes, &length); assert(nsres == NS_OK);
for(i = 0; i < length && !window; ++i) { HTMLOuterWindow *window_iter; - nsIDOMWindow *nswindow; BSTR id;
nsres = nsIDOMWindowCollection_Item(nsframes, i, &nswindow);