jscript/tests: Add missing checks for Close() calls (Coverity).

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-01-03 22:34:06 +03:00 committed by Alexandre Julliard
parent 37dec9f144
commit aa3eb3015f
1 changed files with 22 additions and 13 deletions

View File

@ -230,6 +230,18 @@ static void _test_grfdex(unsigned line, DWORD grfdex, DWORD expect)
ok_(__FILE__,line)(grfdex == expect, "grfdex = %x, expected %x\n", grfdex, expect); ok_(__FILE__,line)(grfdex == expect, "grfdex = %x, expected %x\n", grfdex, expect);
} }
static void close_script(IActiveScript *script)
{
HRESULT hres;
ULONG ref;
hres = IActiveScript_Close(script);
ok(hres == S_OK, "Close failed: %08x\n", hres);
ref = IActiveScript_Release(script);
ok(!ref, "ref=%u\n", ref);
}
static HRESULT WINAPI EnumVARIANT_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **ppv) static HRESULT WINAPI EnumVARIANT_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **ppv)
{ {
*ppv = NULL; *ppv = NULL;
@ -2408,23 +2420,22 @@ static HRESULT parse_script_expr(const char *expr, VARIANT *res, IActiveScript *
IActiveScriptParse_Release(parser); IActiveScriptParse_Release(parser);
if(engine_ret) { if(engine_ret)
*engine_ret = engine; *engine_ret = engine;
}else { else
IActiveScript_Close(engine); close_script(engine);
IActiveScript_Release(engine);
}
return hres; return hres;
} }
static void test_retval(void) static void test_retval(void)
{ {
BSTR str = a2bstr("reportSuccess(), true");
IActiveScriptParse *parser; IActiveScriptParse *parser;
IActiveScript *engine; IActiveScript *engine;
SCRIPTSTATE state; SCRIPTSTATE state;
VARIANT res; VARIANT res;
HRESULT hres; HRESULT hres;
BSTR str;
engine = create_script(); engine = create_script();
if(!engine) if(!engine)
@ -2445,6 +2456,7 @@ static void test_retval(void)
ok(hres == S_OK, "AddNamedItem failed: %08x\n", hres); ok(hres == S_OK, "AddNamedItem failed: %08x\n", hres);
CHECK_CALLED(GetItemInfo_testVal); CHECK_CALLED(GetItemInfo_testVal);
str = a2bstr("reportSuccess(), true");
V_VT(&res) = VT_NULL; V_VT(&res) = VT_NULL;
SET_EXPECT(global_success_d); SET_EXPECT(global_success_d);
SET_EXPECT(global_success_i); SET_EXPECT(global_success_i);
@ -2453,6 +2465,7 @@ static void test_retval(void)
CHECK_CALLED(global_success_i); CHECK_CALLED(global_success_i);
ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres); ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres);
ok(V_VT(&res) == VT_EMPTY, "V_VT(&res) = %d\n", V_VT(&res)); ok(V_VT(&res) == VT_EMPTY, "V_VT(&res) = %d\n", V_VT(&res));
SysFreeString(str);
hres = IActiveScript_GetScriptState(engine, &state); hres = IActiveScript_GetScriptState(engine, &state);
ok(hres == S_OK, "GetScriptState failed: %08x\n", hres); ok(hres == S_OK, "GetScriptState failed: %08x\n", hres);
@ -2461,12 +2474,9 @@ static void test_retval(void)
hres = IActiveScript_SetScriptState(engine, SCRIPTSTATE_STARTED); hres = IActiveScript_SetScriptState(engine, SCRIPTSTATE_STARTED);
ok(hres == S_OK, "SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n", hres); ok(hres == S_OK, "SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n", hres);
hres = IActiveScript_Close(engine);
ok(hres == S_OK, "Close failed: %08x\n", hres);
IActiveScriptParse_Release(parser); IActiveScriptParse_Release(parser);
IActiveScript_Release(engine);
SysFreeString(str); close_script(engine);
} }
static void test_default_value(void) static void test_default_value(void)
@ -2697,8 +2707,7 @@ static void test_eval(void)
IDispatchEx_Release(script_dispex); IDispatchEx_Release(script_dispex);
IActiveScriptParse_Release(parser); IActiveScriptParse_Release(parser);
IActiveScript_Close(engine); close_script(engine);
IActiveScript_Release(engine);
} }
struct bom_test struct bom_test