From 160f7b3e5d9aa78dbbb6eff63681621aed712ab6 Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Sun, 23 Mar 2025 15:27:37 +0100 Subject: [PATCH] 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 Reviewed-on: https://review.openocd.org/c/openocd/+/8814 Tested-by: jenkins --- src/target/target.c | 12 +++++++++++- tools/scripts/camelcase.txt | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/target/target.c b/src/target/target.c index 53850bf28..8c5c8e5e3 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); diff --git a/tools/scripts/camelcase.txt b/tools/scripts/camelcase.txt index b78790200..6c6c28daa 100644 --- a/tools/scripts/camelcase.txt +++ b/tools/scripts/camelcase.txt @@ -122,6 +122,7 @@ Jim_GetWide Jim_IncrRefCount Jim_InitStaticExtensions Jim_Interp +Jim_Length Jim_ListAppendElement Jim_ListGetIndex Jim_ListLength -- 2.50.1