From 0be2db2ecd0460a3a46e18562e58c5838256795d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= Date: Thu, 4 Nov 2021 16:10:51 +0200 Subject: [PATCH] mshtml: Hold a ref to the location on the window side. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gabriel Ivăncescu Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/mshtml/htmlwindow.c | 5 ++--- dlls/mshtml/tests/dom.c | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index 0b25e71063d..635b046ea39 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -68,9 +68,7 @@ static inline BOOL is_outer_window(HTMLWindow *window) static HRESULT get_location(HTMLInnerWindow *This, HTMLLocation **ret) { - if(This->location) { - IHTMLLocation_AddRef(&This->location->IHTMLLocation_iface); - }else { + if(!This->location) { HRESULT hres; hres = HTMLLocation_Create(This, &This->location); @@ -78,6 +76,7 @@ static HRESULT get_location(HTMLInnerWindow *This, HTMLLocation **ret) return hres; } + IHTMLLocation_AddRef(&This->location->IHTMLLocation_iface); *ret = This->location; return S_OK; } diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 03f5c0431ea..ea5b2108100 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -6015,7 +6015,6 @@ static void test_location(IHTMLDocument2 *doc) IHTMLLocation *location, *location2; IHTMLWindow2 *window; BSTR str; - ULONG ref; HRESULT hres; hres = IHTMLDocument2_get_location(doc, &location); @@ -6051,8 +6050,7 @@ static void test_location(IHTMLDocument2 *doc) ok(!lstrcmpW(str, L"about:blank"), "unexpected href %s\n", wine_dbgstr_w(str)); SysFreeString(str); - ref = IHTMLLocation_Release(location); - ok(!ref, "location should be destroyed here\n"); + IHTMLLocation_Release(location); } static void test_plugins_col(IHTMLDocument2 *doc)