diff options
| author | Steven Rostedt <rostedt@goodmis.org> | 2009-12-23 20:50:50 -0500 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2009-12-23 20:50:50 -0500 |
| commit | 2d25338455979714efd8b4866c5cfd06e6a37fe0 (patch) | |
| tree | 16f085025db4dc5dab308d7b23e647e8e619da76 | |
| parent | a69580d4fc58b8a45b71f31995dded115f813db2 (diff) | |
kernelshark: More memory leak clean ups
Found some more memory leak cleanups with valgrind. Running this:
G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=memcheck \
--leak-check=full --leak-resolution=high --num-callers=20 kernelshark
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
| -rw-r--r-- | kernel-shark.c | 11 | ||||
| -rw-r--r-- | trace-graph.c | 2 | ||||
| -rw-r--r-- | trace-view.c | 3 |
3 files changed, 11 insertions, 5 deletions
diff --git a/kernel-shark.c b/kernel-shark.c index a860392..158b9ac 100644 --- a/kernel-shark.c +++ b/kernel-shark.c | |||
| @@ -72,6 +72,13 @@ static void ks_graph_select(struct graph_info *ginfo, guint64 cursor) | |||
| 72 | trace_view_select(info->treeview, cursor); | 72 | trace_view_select(info->treeview, cursor); |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | static void free_info(struct shark_info *info) | ||
| 76 | { | ||
| 77 | tracecmd_close(info->handle); | ||
| 78 | free(info->ginfo); | ||
| 79 | free(info); | ||
| 80 | } | ||
| 81 | |||
| 75 | /* Callback for the clicked signal of the Exit button */ | 82 | /* Callback for the clicked signal of the Exit button */ |
| 76 | static void | 83 | static void |
| 77 | exit_clicked (gpointer data) | 84 | exit_clicked (gpointer data) |
| @@ -79,7 +86,7 @@ exit_clicked (gpointer data) | |||
| 79 | struct shark_info *info = data; | 86 | struct shark_info *info = data; |
| 80 | 87 | ||
| 81 | gtk_widget_destroy (info->window); /* the user data points to the main window */ | 88 | gtk_widget_destroy (info->window); /* the user data points to the main window */ |
| 82 | tracecmd_close(info->handle); | 89 | free_info(info); |
| 83 | gtk_main_quit (); | 90 | gtk_main_quit (); |
| 84 | } | 91 | } |
| 85 | 92 | ||
| @@ -90,7 +97,7 @@ delete_event (GtkWidget *widget, GdkEvent *event, gpointer data) | |||
| 90 | struct shark_info *info = data; | 97 | struct shark_info *info = data; |
| 91 | 98 | ||
| 92 | gtk_widget_destroy (widget); /* destroy the main window */ | 99 | gtk_widget_destroy (widget); /* destroy the main window */ |
| 93 | tracecmd_close(info->handle); | 100 | free_info(info); |
| 94 | gtk_main_quit (); | 101 | gtk_main_quit (); |
| 95 | return TRUE; | 102 | return TRUE; |
| 96 | } | 103 | } |
diff --git a/trace-graph.c b/trace-graph.c index da3162c..f7d98c1 100644 --- a/trace-graph.c +++ b/trace-graph.c | |||
| @@ -1263,10 +1263,12 @@ trace_graph_create_with_callbacks(struct tracecmd_input *handle, GtkScrolledWind | |||
| 1263 | if (record->ts < ginfo->start_time) | 1263 | if (record->ts < ginfo->start_time) |
| 1264 | ginfo->start_time = record->ts; | 1264 | ginfo->start_time = record->ts; |
| 1265 | 1265 | ||
| 1266 | free_record(record); | ||
| 1266 | record = tracecmd_read_cpu_last(handle, cpu); | 1267 | record = tracecmd_read_cpu_last(handle, cpu); |
| 1267 | 1268 | ||
| 1268 | if (record->ts > ginfo->end_time) | 1269 | if (record->ts > ginfo->end_time) |
| 1269 | ginfo->end_time = record->ts; | 1270 | ginfo->end_time = record->ts; |
| 1271 | free_record(record); | ||
| 1270 | } | 1272 | } |
| 1271 | 1273 | ||
| 1272 | convert_nano(ginfo->start_time, &sec, &usec); | 1274 | convert_nano(ginfo->start_time, &sec, &usec); |
diff --git a/trace-view.c b/trace-view.c index 0b6affb..dadf35c 100644 --- a/trace-view.c +++ b/trace-view.c | |||
| @@ -79,7 +79,6 @@ void | |||
| 79 | trace_view_load(GtkWidget *view, struct tracecmd_input *handle, | 79 | trace_view_load(GtkWidget *view, struct tracecmd_input *handle, |
| 80 | GtkWidget *spin) | 80 | GtkWidget *spin) |
| 81 | { | 81 | { |
| 82 | GtkTreeViewColumn *col; | ||
| 83 | GtkCellRenderer *renderer; | 82 | GtkCellRenderer *renderer; |
| 84 | GtkCellRenderer *fix_renderer; | 83 | GtkCellRenderer *fix_renderer; |
| 85 | GtkTreeModel *model; | 84 | GtkTreeModel *model; |
| @@ -87,8 +86,6 @@ trace_view_load(GtkWidget *view, struct tracecmd_input *handle, | |||
| 87 | 86 | ||
| 88 | /* --- CPU column --- */ | 87 | /* --- CPU column --- */ |
| 89 | 88 | ||
| 90 | col = gtk_tree_view_column_new(); | ||
| 91 | |||
| 92 | renderer = gtk_cell_renderer_text_new(); | 89 | renderer = gtk_cell_renderer_text_new(); |
| 93 | fix_renderer = gtk_cell_renderer_text_new(); | 90 | fix_renderer = gtk_cell_renderer_text_new(); |
| 94 | 91 | ||
