aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/perf/builtin-top.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index c72ab50d65ca..c6706984b7b3 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -287,19 +287,20 @@ out_unlock:
287 pthread_mutex_unlock(&syme->src->lock); 287 pthread_mutex_unlock(&syme->src->lock);
288} 288}
289 289
290#define PATTERN_LEN (BITS_PER_LONG / 4 + 2)
291
290static void lookup_sym_source(struct sym_entry *syme) 292static void lookup_sym_source(struct sym_entry *syme)
291{ 293{
292 struct symbol *symbol = sym_entry__symbol(syme); 294 struct symbol *symbol = sym_entry__symbol(syme);
293 struct source_line *line; 295 struct source_line *line;
294 const size_t pattern_len = BITS_PER_LONG / 4 + 2; 296 char pattern[PATTERN_LEN + 1];
295 char pattern[pattern_len + 1];
296 297
297 sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4, 298 sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4,
298 map__rip_2objdump(syme->map, symbol->start)); 299 map__rip_2objdump(syme->map, symbol->start));
299 300
300 pthread_mutex_lock(&syme->src->lock); 301 pthread_mutex_lock(&syme->src->lock);
301 for (line = syme->src->lines; line; line = line->next) { 302 for (line = syme->src->lines; line; line = line->next) {
302 if (memcmp(line->line, pattern, pattern_len) == 0) { 303 if (memcmp(line->line, pattern, PATTERN_LEN) == 0) {
303 syme->src->source = line; 304 syme->src->source = line;
304 break; 305 break;
305 } 306 }