From: Andi Kleen <a...@linux.intel.com>

In hierarchy mode the res samples need to be cloned from the parent
entry. Copy them in this case. This fixes res sample browsing
with --hierarchy.

Signed-off-by: Andi Kleen <a...@linux.intel.com>
---
 tools/perf/util/hist.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 1f230285d78a..dcf24581dfbd 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -437,8 +437,15 @@ static int hist_entry__init(struct hist_entry *he,
        }
 
        if (symbol_conf.res_sample) {
-               he->res_samples = calloc(sizeof(struct res_sample),
-                                       symbol_conf.res_sample);
+               if (he->res_samples) {
+                       he->res_samples = memdup(he->res_samples,
+                                               sizeof(struct res_sample) *
+                                               symbol_conf.res_sample);
+               } else {
+                       he->res_samples = calloc(sizeof(struct res_sample),
+                                                symbol_conf.res_sample);
+                       he->num_res = 0;
+               }
                if (!he->res_samples)
                        goto err_srcline;
        }
-- 
2.20.1

Reply via email to