perf tools: Use asprintf instead of malloc plus snprintf
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 3 Dec 2013 07:23:06 +0000 (09:23 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 4 Dec 2013 16:46:36 +0000 (13:46 -0300)
The asprintf library function is equivalent to malloc plus snprintf so
use it because it is simpler.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1386055390-13757-4-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/srcline.c

index d11aefb..4c8e816 100644 (file)
@@ -227,7 +227,6 @@ char *get_srcline(struct dso *dso, unsigned long addr)
        unsigned line = 0;
        char *srcline;
        char *dso_name = dso->long_name;
-       size_t size;
 
        if (!dso->has_srcline)
                return SRCLINE_UNKNOWN;
@@ -241,13 +240,7 @@ char *get_srcline(struct dso *dso, unsigned long addr)
        if (!addr2line(dso_name, addr, &file, &line))
                goto out;
 
-       /* just calculate actual length */
-       size = snprintf(NULL, 0, "%s:%u", file, line) + 1;
-
-       srcline = malloc(size);
-       if (srcline)
-               snprintf(srcline, size, "%s:%u", file, line);
-       else
+       if (asprintf(&srcline, "%s:%u", file, line) < 0)
                srcline = SRCLINE_UNKNOWN;
 
        free(file);