lkml.org 
[lkml]   [2019]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v2 5/9] perf tools: avoid a malloc for array events
    From
    Use realloc rather than malloc+memcpy to possibly avoid a memory
    allocation when appending array elements.

    Signed-off-by: Ian Rogers <irogers@google.com>
    ---
    tools/perf/util/parse-events.y | 8 +++-----
    1 file changed, 3 insertions(+), 5 deletions(-)

    diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
    index 26cb65798522..545ab7cefc20 100644
    --- a/tools/perf/util/parse-events.y
    +++ b/tools/perf/util/parse-events.y
    @@ -691,14 +691,12 @@ array_terms ',' array_term
    struct parse_events_array new_array;

    new_array.nr_ranges = $1.nr_ranges + $3.nr_ranges;
    - new_array.ranges = malloc(sizeof(new_array.ranges[0]) *
    - new_array.nr_ranges);
    + new_array.ranges = realloc($1.ranges,
    + sizeof(new_array.ranges[0]) *
    + new_array.nr_ranges);
    ABORT_ON(!new_array.ranges);
    - memcpy(&new_array.ranges[0], $1.ranges,
    - $1.nr_ranges * sizeof(new_array.ranges[0]));
    memcpy(&new_array.ranges[$1.nr_ranges], $3.ranges,
    $3.nr_ranges * sizeof(new_array.ranges[0]));
    - free($1.ranges);
    free($3.ranges);
    $$ = new_array;
    }
    --
    2.23.0.866.gb869b98d4c-goog
    \
     
     \ /
      Last update: 2019-10-23 02:55    [W:3.878 / U:0.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site