aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2025-03-23 15:27:37 +0100
committerAntonio Borneo <borneo.antonio@gmail.com>2025-04-05 06:23:53 +0000
commit160f7b3e5d9aa78dbbb6eff63681621aed712ab6 (patch)
treefc2435fa689100e6a669936df3c9e400cab3c23b /src
parentc023534e7b6f61dddf91fc6ca4644d4071bb73dc (diff)
downloadriscv-openocd-160f7b3e5d9aa78dbbb6eff63681621aed712ab6.zip
riscv-openocd-160f7b3e5d9aa78dbbb6eff63681621aed712ab6.tar.gz
riscv-openocd-160f7b3e5d9aa78dbbb6eff63681621aed712ab6.tar.bz2
target: remove events that are set to empty string
Current code allows replacing the body of an existing event, but it doesn't provides a way to remove it. Replacing the event with an empty string makes the event still present and visible through $target_name eventlist The presence of empty events makes more complex checking for the event not set or set to empty. Remove the event when set to empty string. While there, add 'Jim_Length' to the list of allowed CamelCase symbols, avoiding the associated checkpatch error. Change-Id: I1ec2e1a71d298a0eba0b6863902645bcc6c4cb09 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/8814 Tested-by: jenkins
Diffstat (limited to 'src')
-rw-r--r--src/target/target.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/target/target.c b/src/target/target.c
index 53850bf..8c5c8e5 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -4968,6 +4968,17 @@ no_params:
LOG_INFO("DEPRECATED target event %s; use TPIU events {pre,post}-{enable,disable}", n->name);
/* END_DEPRECATED_TPIU */
+ jim_getopt_obj(goi, &o);
+ if (Jim_Length(o) == 0) {
+ /* empty action, drop existing one */
+ if (teap) {
+ list_del(&teap->list);
+ Jim_DecrRefCount(teap->interp, teap->body);
+ free(teap);
+ }
+ break;
+ }
+
bool replace = true;
if (!teap) {
/* create new */
@@ -4976,7 +4987,6 @@ no_params:
}
teap->event = n->value;
teap->interp = goi->interp;
- jim_getopt_obj(goi, &o);
if (teap->body)
Jim_DecrRefCount(teap->interp, teap->body);
teap->body = Jim_DuplicateObj(goi->interp, o);