From a14e083728be3ac3b9d13ac5542f041fb7b7b574 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 23 Feb 2016 13:07:04 +0100 Subject: [PATCH] sdlog2: Free log buffer on log stop --- src/modules/sdlog2/logbuffer.c | 7 +++++++ src/modules/sdlog2/logbuffer.h | 2 ++ src/modules/sdlog2/sdlog2.c | 3 +++ 3 files changed, 12 insertions(+) diff --git a/src/modules/sdlog2/logbuffer.c b/src/modules/sdlog2/logbuffer.c index 2768994dde..02172b4154 100644 --- a/src/modules/sdlog2/logbuffer.c +++ b/src/modules/sdlog2/logbuffer.c @@ -143,3 +143,10 @@ void logbuffer_mark_read(struct logbuffer_s *lb, int n) { lb->read_ptr = (lb->read_ptr + n) % lb->size; } + +void logbuffer_free(struct logbuffer_s *lb) +{ + if (lb->data) { + free(lb->data); + } +} diff --git a/src/modules/sdlog2/logbuffer.h b/src/modules/sdlog2/logbuffer.h index 3a5e3a29f5..e5f93e1986 100644 --- a/src/modules/sdlog2/logbuffer.h +++ b/src/modules/sdlog2/logbuffer.h @@ -65,4 +65,6 @@ int logbuffer_get_ptr(struct logbuffer_s *lb, void **ptr, bool *is_part); void logbuffer_mark_read(struct logbuffer_s *lb, int n); +void logbuffer_free(struct logbuffer_s *lb); + #endif diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c index cef85bee56..a733348fb8 100644 --- a/src/modules/sdlog2/sdlog2.c +++ b/src/modules/sdlog2/sdlog2.c @@ -771,6 +771,9 @@ void sdlog2_stop_log() /* free log writer performance counter */ perf_free(perf_write); + /* free log buffer */ + logbuffer_free(&lb); + mavlink_and_console_log_info(mavlink_fd, "[blackbox] recording stopped"); sdlog2_status();