diff options
Diffstat (limited to 'tools/perf/builtin-diff.c')
-rw-r--r-- | tools/perf/builtin-diff.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 3f86737da2c4..ae8f62151b34 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c | |||
@@ -390,6 +390,15 @@ static void perf_evlist__collapse_resort(struct perf_evlist *evlist) | |||
390 | } | 390 | } |
391 | } | 391 | } |
392 | 392 | ||
393 | static struct data__file *fmt_to_data_file(struct perf_hpp_fmt *fmt) | ||
394 | { | ||
395 | struct diff_hpp_fmt *dfmt = container_of(fmt, struct diff_hpp_fmt, fmt); | ||
396 | void *ptr = dfmt - dfmt->idx; | ||
397 | struct data__file *d = container_of(ptr, struct data__file, fmt); | ||
398 | |||
399 | return d; | ||
400 | } | ||
401 | |||
393 | static struct hist_entry* | 402 | static struct hist_entry* |
394 | get_pair_data(struct hist_entry *he, struct data__file *d) | 403 | get_pair_data(struct hist_entry *he, struct data__file *d) |
395 | { | 404 | { |
@@ -407,8 +416,7 @@ get_pair_data(struct hist_entry *he, struct data__file *d) | |||
407 | static struct hist_entry* | 416 | static struct hist_entry* |
408 | get_pair_fmt(struct hist_entry *he, struct diff_hpp_fmt *dfmt) | 417 | get_pair_fmt(struct hist_entry *he, struct diff_hpp_fmt *dfmt) |
409 | { | 418 | { |
410 | void *ptr = dfmt - dfmt->idx; | 419 | struct data__file *d = fmt_to_data_file(&dfmt->fmt); |
411 | struct data__file *d = container_of(ptr, struct data__file, fmt); | ||
412 | 420 | ||
413 | return get_pair_data(he, d); | 421 | return get_pair_data(he, d); |
414 | } | 422 | } |