diff options
author | Matthias Welwarsky <matthias.welwarsky@sysgo.com> | 2018-03-26 09:45:46 +0200 |
---|---|---|
committer | Matthias Welwarsky <matthias@welwarsky.de> | 2018-04-10 09:13:02 +0100 |
commit | 09076d10dd553dc63f08e74aedb1b6aa030857f9 (patch) | |
tree | fac95f9f2c28bcfbd67a58f1bbd7c7a3bf6717d6 /src/target/aarch64.c | |
parent | c0f81fbee745e34d04d490df0b26d8e443d90c0e (diff) | |
download | riscv-openocd-09076d10dd553dc63f08e74aedb1b6aa030857f9.zip riscv-openocd-09076d10dd553dc63f08e74aedb1b6aa030857f9.tar.gz riscv-openocd-09076d10dd553dc63f08e74aedb1b6aa030857f9.tar.bz2 |
armv8: valgrind memleak fixes
Various fixes for memory leaks, adds a target cleanup for aarch64
and ARM CTI objects.
Change-Id: I2267f0894df655fdf73d70c11ed03df0b8f8d07d
Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
Reviewed-on: http://openocd.zylin.com/4478
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/target/aarch64.c')
-rw-r--r-- | src/target/aarch64.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/target/aarch64.c b/src/target/aarch64.c index 4641a3f..cd83502 100644 --- a/src/target/aarch64.c +++ b/src/target/aarch64.c @@ -2386,6 +2386,20 @@ static int aarch64_target_create(struct target *target, Jim_Interp *interp) return aarch64_init_arch_info(target, aarch64, pc->adiv5_config.dap); } +static void aarch64_deinit_target(struct target *target) +{ + struct aarch64_common *aarch64 = target_to_aarch64(target); + struct armv8_common *armv8 = &aarch64->armv8_common; + struct arm_dpm *dpm = &armv8->dpm; + + armv8_free_reg_cache(target); + free(aarch64->brp_list); + free(dpm->dbp); + free(dpm->dwp); + free(target->private_config); + free(aarch64); +} + static int aarch64_mmu(struct target *target, int *enabled) { if (target->state != TARGET_HALTED) { @@ -2658,6 +2672,7 @@ struct target_type aarch64_target = { .target_create = aarch64_target_create, .target_jim_configure = aarch64_jim_configure, .init_target = aarch64_init_target, + .deinit_target = aarch64_deinit_target, .examine = aarch64_examine, .read_phys_memory = aarch64_read_phys_memory, |