jtag: simplify the calls to Jim_SetResultFormatted()
authorAntonio Borneo <borneo.antonio@gmail.com>
Sun, 25 Apr 2021 21:15:36 +0000 (23:15 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 1 May 2021 12:37:29 +0000 (13:37 +0100)
The documentation of Jim_SetResultFormatted() reports that the jim
objects passed as arguments would be freed if have zero refcount.

Remove the useless Jim_IncrRefCount()/Jim_DecrRefCount().
Remove the dangerous Jim_FreeNewObj() that should trigger a double
free(). Not tested due to lack of aice adapter.

While there, rename some CamelCase symbol.

Change-Id: Ic56704c83d6391c38f6b0efa6566784d453bc0fb
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/6190
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/jtag/aice/aice_transport.c
src/jtag/tcl.c

index ea710ad25d24da45748e394c6239c12e41377193..e3d431b2ec54c585cf78f3b8dfb64dbf0917c083 100644 (file)
@@ -255,9 +255,8 @@ static int jim_aice_arp_init_reset(Jim_Interp *interp, int argc, Jim_Obj * const
        e = aice_init_reset(context);
 
        if (e != ERROR_OK) {
-               Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
-               Jim_SetResultFormatted(goi.interp, "error: %#s", eObj);
-               Jim_FreeNewObj(goi.interp, eObj);
+               Jim_Obj *obj = Jim_NewIntObj(goi.interp, e);
+               Jim_SetResultFormatted(goi.interp, "error: %#s", obj);
                return JIM_ERR;
        }
        return JIM_OK;
index 3e7333515463cc9b46a292180bda358414ba5167..8a52c0f18b2abd819f6b65dc2c76dda93b55cb31 100644 (file)
@@ -687,10 +687,8 @@ static int jim_jtag_arp_init(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
        struct command_context *context = current_command_context(interp);
        int e = jtag_init_inner(context);
        if (e != ERROR_OK) {
-               Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
-               Jim_IncrRefCount(eObj);
-               Jim_SetResultFormatted(goi.interp, "error: %#s", eObj);
-               Jim_DecrRefCount(goi.interp, eObj);
+               Jim_Obj *obj = Jim_NewIntObj(goi.interp, e);
+               Jim_SetResultFormatted(goi.interp, "error: %#s", obj);
                return JIM_ERR;
        }
        return JIM_OK;
@@ -712,10 +710,8 @@ static int jim_jtag_arp_init_reset(Jim_Interp *interp, int argc, Jim_Obj *const
                e = swd_init_reset(context);
 
        if (e != ERROR_OK) {
-               Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
-               Jim_IncrRefCount(eObj);
-               Jim_SetResultFormatted(goi.interp, "error: %#s", eObj);
-               Jim_DecrRefCount(goi.interp, eObj);
+               Jim_Obj *obj = Jim_NewIntObj(goi.interp, e);
+               Jim_SetResultFormatted(goi.interp, "error: %#s", obj);
                return JIM_ERR;
        }
        return JIM_OK;