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 | ||