diff options
author | Tomas Vanek <vanekt@fbl.cz> | 2018-03-22 00:20:15 +0100 |
---|---|---|
committer | Matthias Welwarsky <matthias@welwarsky.de> | 2018-03-30 10:15:23 +0100 |
commit | 6eba3777fca4a3e8c0d91dce9caedfeb9c08dc67 (patch) | |
tree | a8b46c489c58c2545af44fa8c6695baa27e26419 /src/jtag | |
parent | 37deb37593c20c05a4bb29e1d88671a1f7ec6548 (diff) |
jtag/core, target: unregister JTAG events
Also call adapter_exit() before command_exit() as the latter releases
Jim interpreter so JTAG events should be released before.
Fixes memory leak reported by valgrind
Change-Id: I493f3fcba34ea2b4234148e79a4e329c866e0f05
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/4474
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Diffstat (limited to 'src/jtag')
-rw-r--r-- | src/jtag/core.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/jtag/core.c b/src/jtag/core.c index 0fbd327f..4522321a 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -1308,6 +1308,14 @@ void jtag_tap_free(struct jtag_tap *tap) { jtag_unregister_event_callback(&jtag_reset_callback, tap); + struct jtag_tap_event_action *jteap = tap->event_action; + while (jteap) { + struct jtag_tap_event_action *next = jteap->next; + Jim_DecrRefCount(jteap->interp, jteap->body); + free(jteap); + jteap = next; + } + free(tap->expected); free(tap->expected_mask); free(tap->expected_ids); |