diff options
| -rw-r--r-- | trace-graph.c | 13 |
1 files 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, | |||
| 552 | struct filter_task *task_filter, | 552 | struct filter_task *task_filter, |
| 553 | struct filter_task *hide_tasks) | 553 | struct filter_task *hide_tasks) |
| 554 | { | 554 | { |
| 555 | filter_task_hash_free(ginfo->task_filter); | 555 | /* Make sure the filter passed in is not the filter we use */ |
| 556 | filter_task_hash_free(ginfo->hide_tasks); | 556 | if (task_filter != ginfo->task_filter) { |
| 557 | filter_task_hash_free(ginfo->task_filter); | ||
| 558 | ginfo->task_filter = filter_task_hash_copy(task_filter); | ||
| 559 | } | ||
| 557 | 560 | ||
| 558 | ginfo->task_filter = filter_task_hash_copy(task_filter); | 561 | if (hide_tasks != ginfo->hide_tasks) { |
| 559 | ginfo->hide_tasks = filter_task_hash_copy(hide_tasks); | 562 | filter_task_hash_free(ginfo->hide_tasks); |
| 563 | ginfo->hide_tasks = filter_task_hash_copy(hide_tasks); | ||
| 564 | } | ||
| 560 | 565 | ||
| 561 | if (ginfo->filter_enabled) | 566 | if (ginfo->filter_enabled) |
| 562 | redraw_graph(ginfo); | 567 | redraw_graph(ginfo); |
