projects
/
fw
/
openocd
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
jtag/drivers: add support for Nu-Link (Nuvoton ICE) over usb
[fw/openocd]
/
src
/
jtag
/
tcl.c
diff --git
a/src/jtag/tcl.c
b/src/jtag/tcl.c
index 01210bd69df16983ccdbd1a55b6bb43df6be19a3..8b76bff07e37c25d850b6fcbd62b6996568ea602 100644
(file)
--- a/
src/jtag/tcl.c
+++ b/
src/jtag/tcl.c
@@
-689,8
+689,9
@@
static int jim_jtag_arp_init(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
int e = jtag_init_inner(context);
if (e != ERROR_OK) {
Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
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_SetResultFormatted(goi.interp, "error: %#s", eObj);
- Jim_
FreeNewObj
(goi.interp, eObj);
+ Jim_
DecrRefCount
(goi.interp, eObj);
return JIM_ERR;
}
return JIM_OK;
return JIM_ERR;
}
return JIM_OK;
@@
-713,8
+714,9
@@
static int jim_jtag_arp_init_reset(Jim_Interp *interp, int argc, Jim_Obj *const
if (e != ERROR_OK) {
Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
if (e != ERROR_OK) {
Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
+ Jim_IncrRefCount(eObj);
Jim_SetResultFormatted(goi.interp, "error: %#s", eObj);
Jim_SetResultFormatted(goi.interp, "error: %#s", eObj);
- Jim_
FreeNewObj
(goi.interp, eObj);
+ Jim_
DecrRefCount
(goi.interp, eObj);
return JIM_ERR;
}
return JIM_OK;
return JIM_ERR;
}
return JIM_OK;
@@
-1129,14
+1131,19
@@
COMMAND_HANDLER(handle_irscan_command)
return ERROR_FAIL;
}
return ERROR_FAIL;
}
- int field_size = tap->ir_length;
- fields[i].num_bits = field_size;
- uint8_t *v = calloc(1, DIV_ROUND_UP(field_size, 8));
-
uint64_t value;
retval = parse_u64(CMD_ARGV[i * 2 + 1], &value);
if (ERROR_OK != retval)
goto error_return;
uint64_t value;
retval = parse_u64(CMD_ARGV[i * 2 + 1], &value);
if (ERROR_OK != retval)
goto error_return;
+
+ int field_size = tap->ir_length;
+ fields[i].num_bits = field_size;
+ uint8_t *v = calloc(1, DIV_ROUND_UP(field_size, 8));
+ if (!v) {
+ LOG_ERROR("Out of memory");
+ goto error_return;
+ }
+
buf_set_u64(v, 0, field_size, value);
fields[i].out_value = v;
fields[i].in_value = NULL;
buf_set_u64(v, 0, field_size, value);
fields[i].out_value = v;
fields[i].in_value = NULL;