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/5699
-- gerrit commit f5ca7b1a5a5e974c09629ed937eda1e2c76f47e5 Author: Antonio Borneo <[email protected]> Date: Mon May 25 11:39:54 2020 +0200 target: fix memory leak of register cache based on arm9tdmi For all the arm targets based on arm9tdmi there is no method to free the register cache, allocated through arm9tdmi_init_target(), so we get a memory leak. Issue identified by tracking all calls to arm9tdmi_init_target(). Call the method arm9tdmi_deinit_target() to deallocate the register cache. NOT TESTED on real HW, I will rely on gerrit reviewer for tests. Change-Id: I565f9a5bf144a9df78474434d86a64127ef0fbe5 Signed-off-by: Antonio Borneo <[email protected]> diff --git a/src/target/arm920t.c b/src/target/arm920t.c index 3ddd198..5071919 100644 --- a/src/target/arm920t.c +++ b/src/target/arm920t.c @@ -1716,6 +1716,7 @@ struct target_type arm920t_target = { .commands = arm920t_command_handlers, .target_create = arm920t_target_create, .init_target = arm9tdmi_init_target, + .deinit_target = arm9tdmi_deinit_target, .examine = arm7_9_examine, .check_reset = arm7_9_check_reset, }; diff --git a/src/target/arm926ejs.c b/src/target/arm926ejs.c index ac30485..4c04639 100644 --- a/src/target/arm926ejs.c +++ b/src/target/arm926ejs.c @@ -823,6 +823,7 @@ struct target_type arm926ejs_target = { .commands = arm926ejs_command_handlers, .target_create = arm926ejs_target_create, .init_target = arm9tdmi_init_target, + .deinit_target = arm9tdmi_deinit_target, .examine = arm7_9_examine, .check_reset = arm7_9_check_reset, .virt2phys = arm926ejs_virt2phys, diff --git a/src/target/arm946e.c b/src/target/arm946e.c index 4ef167a..c7c47da 100644 --- a/src/target/arm946e.c +++ b/src/target/arm946e.c @@ -776,6 +776,7 @@ struct target_type arm946e_target = { .commands = arm946e_command_handlers, .target_create = arm946e_target_create, .init_target = arm9tdmi_init_target, + .deinit_target = arm9tdmi_deinit_target, .examine = arm7_9_examine, .check_reset = arm7_9_check_reset, }; diff --git a/src/target/arm966e.c b/src/target/arm966e.c index 8462f54..47fcbdb 100644 --- a/src/target/arm966e.c +++ b/src/target/arm966e.c @@ -278,6 +278,7 @@ struct target_type arm966e_target = { .commands = arm966e_command_handlers, .target_create = arm966e_target_create, .init_target = arm9tdmi_init_target, + .deinit_target = arm9tdmi_deinit_target, .examine = arm7_9_examine, .check_reset = arm7_9_check_reset, }; diff --git a/src/target/fa526.c b/src/target/fa526.c index bb9f735..a388d01 100644 --- a/src/target/fa526.c +++ b/src/target/fa526.c @@ -383,6 +383,7 @@ struct target_type fa526_target = { .commands = arm920t_command_handlers, .target_create = fa526_target_create, .init_target = arm9tdmi_init_target, + .deinit_target = arm9tdmi_deinit_target, .examine = arm7_9_examine, .check_reset = arm7_9_check_reset, }; diff --git a/src/target/feroceon.c b/src/target/feroceon.c index 4a6c6dc..d2b707d 100644 --- a/src/target/feroceon.c +++ b/src/target/feroceon.c @@ -593,6 +593,11 @@ static int feroceon_init_target(struct command_context *cmd_ctx, return ERROR_OK; } +static void feroceon_deinit_target(struct target *target) +{ + arm9tdmi_deinit_target(target); +} + static void feroceon_common_setup(struct target *target) { struct arm *arm = target->arch_info; @@ -729,6 +734,7 @@ struct target_type feroceon_target = { .commands = arm926ejs_command_handlers, .target_create = feroceon_target_create, .init_target = feroceon_init_target, + .deinit_target = feroceon_deinit_target, .examine = feroceon_examine, }; -- _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
