From aa3eb3015f7af9e6260d137163424ceb933d3748 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 3 Jan 2020 22:34:06 +0300 Subject: [PATCH] jscript/tests: Add missing checks for Close() calls (Coverity). Signed-off-by: Nikolay Sivov Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/jscript/tests/run.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/dlls/jscript/tests/run.c b/dlls/jscript/tests/run.c index e3f272d46ca..d8c74d4b17e 100644 --- a/dlls/jscript/tests/run.c +++ b/dlls/jscript/tests/run.c @@ -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); } +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) { *ppv = NULL; @@ -2408,23 +2420,22 @@ static HRESULT parse_script_expr(const char *expr, VARIANT *res, IActiveScript * IActiveScriptParse_Release(parser); - if(engine_ret) { + if(engine_ret) *engine_ret = engine; - }else { - IActiveScript_Close(engine); - IActiveScript_Release(engine); - } + else + close_script(engine); + return hres; } static void test_retval(void) { - BSTR str = a2bstr("reportSuccess(), true"); IActiveScriptParse *parser; IActiveScript *engine; SCRIPTSTATE state; VARIANT res; HRESULT hres; + BSTR str; engine = create_script(); if(!engine) @@ -2445,6 +2456,7 @@ static void test_retval(void) ok(hres == S_OK, "AddNamedItem failed: %08x\n", hres); CHECK_CALLED(GetItemInfo_testVal); + str = a2bstr("reportSuccess(), true"); V_VT(&res) = VT_NULL; SET_EXPECT(global_success_d); SET_EXPECT(global_success_i); @@ -2453,6 +2465,7 @@ static void test_retval(void) CHECK_CALLED(global_success_i); ok(hres == S_OK, "ParseScriptText failed: %08x\n", hres); ok(V_VT(&res) == VT_EMPTY, "V_VT(&res) = %d\n", V_VT(&res)); + SysFreeString(str); hres = IActiveScript_GetScriptState(engine, &state); ok(hres == S_OK, "GetScriptState failed: %08x\n", hres); @@ -2461,12 +2474,9 @@ static void test_retval(void) hres = IActiveScript_SetScriptState(engine, SCRIPTSTATE_STARTED); 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); - IActiveScript_Release(engine); - SysFreeString(str); + + close_script(engine); } static void test_default_value(void) @@ -2697,8 +2707,7 @@ static void test_eval(void) IDispatchEx_Release(script_dispex); IActiveScriptParse_Release(parser); - IActiveScript_Close(engine); - IActiveScript_Release(engine); + close_script(engine); } struct bom_test