This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6190

-- gerrit

commit 3fa991dbc36c18a8c2845fea896eeb4c25cff423
Author: Antonio Borneo <[email protected]>
Date:   Sun Apr 25 23:15:36 2021 +0200

    jtag: simplify the calls to Jim_SetResultFormatted()
    
    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 <[email protected]>

diff --git a/src/jtag/aice/aice_transport.c b/src/jtag/aice/aice_transport.c
index ea710ad..e3d431b 100644
--- a/src/jtag/aice/aice_transport.c
+++ b/src/jtag/aice/aice_transport.c
@@ -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;
diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c
index 3e73335..8a52c0f 100644
--- a/src/jtag/tcl.c
+++ b/src/jtag/tcl.c
@@ -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;

-- 

Reply via email to