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

Alexandre Julliard julliard at winehq.org
Tue Jan 7 17:25:23 CST 2020


Module: wine
Branch: master
Commit: aa3eb3015f7af9e6260d137163424ceb933d3748
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=aa3eb3015f7af9e6260d137163424ceb933d3748

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Jan  3 22:34:06 2020 +0300

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

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 e3f272d46c..d8c74d4b17 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




More information about the wine-cvs mailing list