mshtml: Hold a ref to the location on the window side.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Gabriel Ivăncescu 2021-11-04 16:10:51 +02:00 committed by Alexandre Julliard
parent 3a196ef613
commit 0be2db2ecd
2 changed files with 3 additions and 6 deletions

View File

@ -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;
}

View File

@ -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)