[PATCH 1/1] pfunct: Don't print functions twice when using -f

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We print it in the pfunct_stealer, i.e. as soon as we load the CU
containing the function information, and then, later, we were iterating
all cus and printing the functions that matched.

Do it just at the stealer.

Cc: Alan Maguire <alan.maguire@xxxxxxxxxx>
Cc: Andrii Nakryiko <andrii@xxxxxxxxxx>
Cc: Eduard Zingerman <eddyz87@xxxxxxxxx>
Cc: Ihor Solodrai <ihor.solodrai@xxxxx>
Cc: Mykola Lysenko <mykolal@xxxxxx>
Link: https://lore.kernel.org/all/Z3LoTvt7PtUAbh5K@x1
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
 pfunct.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/pfunct.c b/pfunct.c
index 55eafe8a8e790dcb..5a6dd59a1c7a30b1 100644
--- a/pfunct.c
+++ b/pfunct.c
@@ -415,14 +415,12 @@ static void function__show(struct function *func, struct cu *cu)
 		fstats->printed = true;
 }
 
-static int cu_function_iterator(struct cu *cu, void *cookie)
+static int cu_function_iterator(struct cu *cu, void *cookie __maybe_unused)
 {
 	struct function *function;
 	uint32_t id;
 
 	cu__for_each_function(cu, id, function) {
-		if (cookie && strcmp(function__name(function), cookie) != 0)
-			continue;
 		function__show(function, cu);
 	}
 	return 0;
@@ -816,10 +814,9 @@ try_sole_arg_as_function_name:
 		function__show(f, cu);
 	} else if (show_total_inline_expansion_stats)
 		print_total_inline_stats();
-	else if (function_name != NULL || expand_types)
-		cus__for_each_cu(cus, cu_function_iterator,
-				 function_name, NULL);
-	else
+	else if (expand_types)
+		cus__for_each_cu(cus, cu_function_iterator, NULL, NULL);
+	else if (function_name == NULL)
 		print_fn_stats(formatter);
 
 	rc = EXIT_SUCCESS;
-- 
2.46.2





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux