From 2db91eb153dfdc59ad42e13fefb59f180609b1bd Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 9 Jun 2010 21:33:57 -0400 Subject: trace-graph: Allow update of task filters with same filter Allow trace_graph_update_filters have the ginfo filters passed to it. This will give a way to let external users to refresh the graph filters. Signed-off-by: Steven Rostedt --- trace-graph.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/trace-graph.c b/trace-graph.c index 2bbe73f..73e69d3 100644 --- a/trace-graph.c +++ b/trace-graph.c @@ -552,11 +552,16 @@ void trace_graph_update_filters(struct graph_info *ginfo, struct filter_task *task_filter, struct filter_task *hide_tasks) { - filter_task_hash_free(ginfo->task_filter); - filter_task_hash_free(ginfo->hide_tasks); + /* Make sure the filter passed in is not the filter we use */ + if (task_filter != ginfo->task_filter) { + filter_task_hash_free(ginfo->task_filter); + ginfo->task_filter = filter_task_hash_copy(task_filter); + } - ginfo->task_filter = filter_task_hash_copy(task_filter); - ginfo->hide_tasks = filter_task_hash_copy(hide_tasks); + if (hide_tasks != ginfo->hide_tasks) { + filter_task_hash_free(ginfo->hide_tasks); + ginfo->hide_tasks = filter_task_hash_copy(hide_tasks); + } if (ginfo->filter_enabled) redraw_graph(ginfo); -- cgit v1.2.2