lkml.org 
[lkml]   [2023]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v3 01/11] libperf evlist: Avoid a use of evsel idx
    From
    Setting the leader iterates the list, so rather than use idx (which
    may be changed through list reordering) just count the elements and
    set afterwards.

    Signed-off-by: Ian Rogers <irogers@google.com>
    ---
    tools/lib/perf/evlist.c | 13 ++++++-------
    1 file changed, 6 insertions(+), 7 deletions(-)

    diff --git a/tools/lib/perf/evlist.c b/tools/lib/perf/evlist.c
    index 61b637f29b82..2d6121e89ccb 100644
    --- a/tools/lib/perf/evlist.c
    +++ b/tools/lib/perf/evlist.c
    @@ -687,15 +687,14 @@ perf_evlist__next_mmap(struct perf_evlist *evlist, struct perf_mmap *map,

    void __perf_evlist__set_leader(struct list_head *list, struct perf_evsel *leader)
    {
    - struct perf_evsel *first, *last, *evsel;
    -
    - first = list_first_entry(list, struct perf_evsel, node);
    - last = list_last_entry(list, struct perf_evsel, node);
    -
    - leader->nr_members = last->idx - first->idx + 1;
    + struct perf_evsel *evsel;
    + int n = 0;

    - __perf_evlist__for_each_entry(list, evsel)
    + __perf_evlist__for_each_entry(list, evsel) {
    evsel->leader = leader;
    + n++;
    + }
    + leader->nr_members = n;
    }

    void perf_evlist__set_leader(struct perf_evlist *evlist)
    --
    2.40.0.rc0.216.gc4246ad0f0-goog
    \
     
     \ /
      Last update: 2023-03-27 00:49    [W:3.045 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site