diff options
author | Jiri Olsa <jolsa@kernel.org> | 2015-02-12 16:06:09 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-03-21 13:53:42 -0400 |
commit | 701d8d7f861ec36f3bc60d1ddb185cceb7919c79 (patch) | |
tree | 4d5525a6da40aefc5d5d030f26783a1179c983cd /tools | |
parent | 3c8a67f50a1e68b912d1d74db6b455cac54ec4b4 (diff) |
perf tools: Add dsos__addnew function
Separate the creation of new dso object and its addition to the dsos
list. It will be used in following patch.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@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/n/tip-8j43jod97fdt5dwdsushwwae@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/util/dso.c | 21 | ||||
-rw-r--r-- | tools/perf/util/dso.h | 1 |
2 files changed, 13 insertions, 9 deletions
diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c index 3e6863feb066..7a7c54b42b41 100644 --- a/tools/perf/util/dso.c +++ b/tools/perf/util/dso.c | |||
@@ -1071,21 +1071,24 @@ struct dso *dsos__find(const struct dsos *dsos, const char *name, | |||
1071 | return dso__find_by_longname(&dsos->root, name); | 1071 | return dso__find_by_longname(&dsos->root, name); |
1072 | } | 1072 | } |
1073 | 1073 | ||
1074 | struct dso *__dsos__findnew(struct dsos *dsos, const char *name) | 1074 | struct dso *dsos__addnew(struct dsos *dsos, const char *name) |
1075 | { | 1075 | { |
1076 | struct dso *dso = dsos__find(dsos, name, false); | 1076 | struct dso *dso = dso__new(name); |
1077 | 1077 | ||
1078 | if (!dso) { | 1078 | if (dso != NULL) { |
1079 | dso = dso__new(name); | 1079 | dsos__add(dsos, dso); |
1080 | if (dso != NULL) { | 1080 | dso__set_basename(dso); |
1081 | dsos__add(dsos, dso); | ||
1082 | dso__set_basename(dso); | ||
1083 | } | ||
1084 | } | 1081 | } |
1085 | |||
1086 | return dso; | 1082 | return dso; |
1087 | } | 1083 | } |
1088 | 1084 | ||
1085 | struct dso *__dsos__findnew(struct dsos *dsos, const char *name) | ||
1086 | { | ||
1087 | struct dso *dso = dsos__find(dsos, name, false); | ||
1088 | |||
1089 | return dso ? dso : dsos__addnew(dsos, name); | ||
1090 | } | ||
1091 | |||
1089 | size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, | 1092 | size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, |
1090 | bool (skip)(struct dso *dso, int parm), int parm) | 1093 | bool (skip)(struct dso *dso, int parm), int parm) |
1091 | { | 1094 | { |
diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h index 384cd2918e8f..3c81d8378bc7 100644 --- a/tools/perf/util/dso.h +++ b/tools/perf/util/dso.h | |||
@@ -264,6 +264,7 @@ struct dso *dso__kernel_findnew(struct machine *machine, const char *name, | |||
264 | const char *short_name, int dso_type); | 264 | const char *short_name, int dso_type); |
265 | 265 | ||
266 | void dsos__add(struct dsos *dsos, struct dso *dso); | 266 | void dsos__add(struct dsos *dsos, struct dso *dso); |
267 | struct dso *dsos__addnew(struct dsos *dsos, const char *name); | ||
267 | struct dso *dsos__find(const struct dsos *dsos, const char *name, | 268 | struct dso *dsos__find(const struct dsos *dsos, const char *name, |
268 | bool cmp_short); | 269 | bool cmp_short); |
269 | struct dso *__dsos__findnew(struct dsos *dsos, const char *name); | 270 | struct dso *__dsos__findnew(struct dsos *dsos, const char *name); |