From c671f8ca7160691791bade508c4a8eb5cdb73fb8 Mon Sep 17 00:00:00 2001 From: deanlee Date: Wed, 15 Dec 2021 03:38:27 +0800 Subject: [PATCH] use std::unique_ptr --- selfdrive/logcatd/logcatd_android.cc | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/selfdrive/logcatd/logcatd_android.cc b/selfdrive/logcatd/logcatd_android.cc index 4452e2f093..af25d45bf5 100644 --- a/selfdrive/logcatd/logcatd_android.cc +++ b/selfdrive/logcatd/logcatd_android.cc @@ -1,6 +1,8 @@ #include #include +#include + #include #include #include @@ -17,29 +19,28 @@ int main() { struct timespec cur_time; clock_gettime(CLOCK_REALTIME, &cur_time); log_time last_log_time(cur_time); - logger_list *logger_list = nullptr; while (!do_exit) { // setup android logging - if (!logger_list) { - logger_list = android_logger_list_alloc_time(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, last_log_time, 0); - } + std::unique_ptr logger_list( + android_logger_list_alloc_time(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, last_log_time, 0), + &android_logger_list_free); assert(logger_list); - struct logger *main_logger = android_logger_open(logger_list, LOG_ID_MAIN); + struct logger *main_logger = android_logger_open(logger_list.get(), LOG_ID_MAIN); assert(main_logger); - struct logger *radio_logger = android_logger_open(logger_list, LOG_ID_RADIO); + struct logger *radio_logger = android_logger_open(logger_list.get(), LOG_ID_RADIO); assert(radio_logger); - struct logger *system_logger = android_logger_open(logger_list, LOG_ID_SYSTEM); + struct logger *system_logger = android_logger_open(logger_list.get(), LOG_ID_SYSTEM); assert(system_logger); - struct logger *crash_logger = android_logger_open(logger_list, LOG_ID_CRASH); + struct logger *crash_logger = android_logger_open(logger_list.get(), LOG_ID_CRASH); assert(crash_logger); - struct logger *kernel_logger = android_logger_open(logger_list, (log_id_t)5); // LOG_ID_KERNEL + struct logger *kernel_logger = android_logger_open(logger_list.get(), (log_id_t)5); // LOG_ID_KERNEL assert(kernel_logger); while (!do_exit) { log_msg log_msg; - int err = android_logger_list_read(logger_list, &log_msg); + int err = android_logger_list_read(logger_list.get(), &log_msg); if (err <= 0) break; AndroidLogEntry entry; @@ -61,14 +62,8 @@ int main() { pm.send("androidLog", msg); } - android_logger_list_free(logger_list); - logger_list = NULL; util::sleep_for(500); } - if (logger_list) { - android_logger_list_free(logger_list); - } - return 0; }