[RFC PATCH 0/8] perf tools: Update strbuf to remove xrealloc

From: Masami Hiramatsu
Date: Fri Apr 29 2016 - 10:46:42 EST


Hi Arnaldo,

This patch series does refactoring strbuf and xrealloc related code
to remove xrealloc since it can call die() to exit immediately when
it hits any error. Instead of that, it should return error code to
the caller so that the caller can handle its error.

Thus, at first, this changes the strbuf APIs to return error code
instead of die() immediately. And then changing API callers according
to the following rules.
- Check the return value of strbuf APIs and handle errors and,
- If the caller returns an error code (errno), it returns
the return value of strbuf APIs.
- If the caller just return -1 or NULl in error case, it also
returns -1 or NULL in case of strbuf error.
- If the caller can call die() directly, it also call die()
in case of strbuf error.
- Error checking patches are splitted for each subcommand, since
it will help review.

This also removes xrealloc and ALLOC_GROW from libperf, so that no
one use it anymore.

This series actually depends on the series of SDT support patches
which I've sent an hour ago. It is also able to change this not to
depend on it easily. Please ask me if you'd like so.

Thank you,

---

Masami Hiramatsu (8):
perf: Rewrite strbuf not to die
perf probe: Check the return value of strbuf APIs
perf help: Make check_emacsclient_version to check strbuf APIs
perf: Make alias handler to check return value of strbuf
perf header: Make topology checkers to check return value of strbuf
perf pmu: Make pmu_formats_string to check return value of strbuf
perf help: Do not use ALLOC_GROW in add_cmd_list
perf tools: Remove xrealloc and ALLOC_GROW


tools/perf/builtin-help.c | 18 ++--
tools/perf/perf.c | 8 +-
tools/perf/util/Build | 1
tools/perf/util/cache.h | 19 ----
tools/perf/util/dwarf-aux.c | 50 +++++------
tools/perf/util/header.c | 31 ++++---
tools/perf/util/help-unknown-cmd.c | 30 +++++-
tools/perf/util/pmu.c | 10 +-
tools/perf/util/probe-event.c | 167 +++++++++++++++++++++---------------
tools/perf/util/probe-finder.c | 30 ++++--
tools/perf/util/quote.c | 36 ++++----
tools/perf/util/quote.h | 2
tools/perf/util/strbuf.c | 93 ++++++++++++++------
tools/perf/util/strbuf.h | 25 +++--
tools/perf/util/util.h | 6 -
tools/perf/util/wrapper.c | 29 ------
16 files changed, 302 insertions(+), 253 deletions(-)
delete mode 100644 tools/perf/util/wrapper.c

--
Masami Hiramatsu