perf symbols: Constify dso->long_name
authorArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 10 Dec 2013 18:19:23 +0000 (15:19 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 10 Dec 2013 19:51:09 +0000 (16:51 -0300)
Same reason as for dso->short_name, it may point to a const string, and
in most places it is treated as const, i.e. it is just accessed for
using its contents as a key or to show it on reports.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-nf7mxf33zt5qw207pbxxryot@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/annotate.c
tools/perf/util/dso.c
tools/perf/util/dso.h
tools/perf/util/header.c
tools/perf/util/srcline.c
tools/perf/util/symbol.c

index cf6242c..0fcd81e 100644 (file)
@@ -900,7 +900,7 @@ fallback:
                 * cache, or is just a kallsyms file, well, lets hope that this
                 * DSO is the same as when 'perf record' ran.
                 */
-               filename = dso->long_name;
+               filename = (char *)dso->long_name;
                snprintf(symfs_filename, sizeof(symfs_filename), "%s%s",
                         symbol_conf.symfs, filename);
                free_filename = false;
index ecb37d6..2c7e189 100644 (file)
@@ -67,7 +67,7 @@ int dso__binary_type_file(struct dso *dso, enum dso_binary_type type,
 
        case DSO_BINARY_TYPE__OPENEMBEDDED_DEBUGINFO:
        {
-               char *last_slash;
+               const char *last_slash;
                size_t len;
                size_t dir_size;
 
@@ -386,13 +386,13 @@ struct dso *dso__kernel_findnew(struct machine *machine, const char *name,
        return dso;
 }
 
-void dso__set_long_name(struct dso *dso, char *name, bool name_allocated)
+void dso__set_long_name(struct dso *dso, const char *name, bool name_allocated)
 {
        if (name == NULL)
                return;
 
        if (dso->long_name_allocated)
-               free(dso->long_name);
+               free((char *)dso->long_name);
 
        dso->long_name           = name;
        dso->long_name_len       = strlen(name);
@@ -414,7 +414,7 @@ void dso__set_short_name(struct dso *dso, const char *name, bool name_allocated)
 
 static void dso__set_basename(struct dso *dso)
 {
-       dso__set_short_name(dso, basename(dso->long_name), false);
+       dso__set_short_name(dso, basename((char *)dso->long_name), false);
 }
 
 int dso__name_len(const struct dso *dso)
@@ -478,7 +478,7 @@ void dso__delete(struct dso *dso)
        if (dso->short_name_allocated)
                free((char *)dso->short_name);
        if (dso->long_name_allocated)
-               free(dso->long_name);
+               free((char *)dso->long_name);
        dso_cache__free(&dso->cache);
        dso__free_a2l(dso);
        free(dso->symsrc_filename);
index 7b43469..a2d7129 100644 (file)
@@ -96,7 +96,7 @@ struct dso {
        u8               rel;
        u8               build_id[BUILD_ID_SIZE];
        const char       *short_name;
-       char             *long_name;
+       const char       *long_name;
        u16              long_name_len;
        u16              short_name_len;
        char             name[0];
@@ -111,7 +111,7 @@ struct dso *dso__new(const char *name);
 void dso__delete(struct dso *dso);
 
 void dso__set_short_name(struct dso *dso, const char *name, bool name_allocated);
-void dso__set_long_name(struct dso *dso, char *name, bool name_allocated);
+void dso__set_long_name(struct dso *dso, const char *name, bool name_allocated);
 
 int dso__name_len(const struct dso *dso);
 
index 125cdc9..0bb830f 100644 (file)
@@ -177,7 +177,7 @@ perf_header__set_cmdline(int argc, const char **argv)
                        continue;               \
                else
 
-static int write_buildid(char *name, size_t name_len, u8 *build_id,
+static int write_buildid(const char *name, size_t name_len, u8 *build_id,
                         pid_t pid, u16 misc, int fd)
 {
        int err;
@@ -209,7 +209,7 @@ static int __dsos__write_buildid_table(struct list_head *head,
 
        dsos__for_each_with_build_id(pos, head) {
                int err;
-               char  *name;
+               const char *name;
                size_t name_len;
 
                if (!pos->hit)
@@ -387,7 +387,7 @@ static int dso__cache_build_id(struct dso *dso, struct machine *machine,
 {
        bool is_kallsyms = dso->kernel && dso->long_name[0] != '/';
        bool is_vdso = is_vdso_map(dso->short_name);
-       char *name = dso->long_name;
+       const char *name = dso->long_name;
        char nm[PATH_MAX];
 
        if (dso__is_kcore(dso)) {
index 0c07556..58b2bd8 100644 (file)
@@ -255,7 +255,7 @@ char *get_srcline(struct dso *dso, unsigned long addr)
        char *file = NULL;
        unsigned line = 0;
        char *srcline;
-       char *dso_name;
+       const char *dso_name;
 
        if (!dso->has_srcline)
                return SRCLINE_UNKNOWN;
index 5029ee1..e377c2e 100644 (file)
@@ -1438,7 +1438,7 @@ int dso__load_vmlinux(struct dso *dso, struct map *map,
                        dso->data_type = DSO_BINARY_TYPE__GUEST_VMLINUX;
                else
                        dso->data_type = DSO_BINARY_TYPE__VMLINUX;
-               dso__set_long_name(dso, (char *)vmlinux, vmlinux_allocated);
+               dso__set_long_name(dso, vmlinux, vmlinux_allocated);
                dso__set_loaded(dso, map->type);
                pr_debug("Using %s for symbols\n", symfs_vmlinux);
        }
@@ -1630,7 +1630,7 @@ do_kallsyms:
        free(kallsyms_allocated_filename);
 
        if (err > 0 && !dso__is_kcore(dso)) {
-               dso__set_long_name(dso, strdup("[kernel.kallsyms]"), true);
+               dso__set_long_name(dso, "[kernel.kallsyms]", false);
                map__fixup_start(map);
                map__fixup_end(map);
        }