On Thu, 5 Jul 2018 12:35:09 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > Thanks for the review. Here's a diff of the patch. Not counting the comment change in the doxygen header, as I already rebased that. -- Steve diff --git a/kernel-shark-qt/src/libkshark.c b/kernel-shark-qt/src/libkshark.c index 86bd8789..f7560404 100644 --- a/kernel-shark-qt/src/libkshark.c +++ b/kernel-shark-qt/src/libkshark.c @@ -514,6 +514,7 @@ static void free_rec_list(struct rec_list **rec_list, int n_cpus) while (rec_list[cpu]) { temp_rec = rec_list[cpu]; rec_list[cpu] = temp_rec->next; + free_record(temp_rec->rec); free(temp_rec); } } @@ -663,6 +664,7 @@ ssize_t kshark_load_data_entries(struct kshark_context *kshark_ctx, temp_rec = rec_list[next_cpu]; rec_list[next_cpu] = rec_list[next_cpu]->next; free(temp_rec); + /* The record is no longer be referenced */ free_record(rec); } } @@ -742,10 +744,11 @@ ssize_t kshark_load_data_records(struct kshark_context *kshark_ctx, temp_rec = rec_list[next_cpu]; rec_list[next_cpu] = rec_list[next_cpu]->next; free(temp_rec); - free_record(rec); + /* The record is still referenced in rows */ } } + /* There should be no records left in rec_list */ free_rec_list(rec_list, n_cpus); *data_rows = rows; return total;