From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757155AbbCCQVp (ORCPT ); Tue, 3 Mar 2015 11:21:45 -0500 Received: from mx1.redhat.com ([209.132.183.28]:36757 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757128AbbCCQVm (ORCPT ); Tue, 3 Mar 2015 11:21:42 -0500 Date: Tue, 3 Mar 2015 13:20:35 -0300 From: Arnaldo Carvalho de Melo To: Jiri Olsa Cc: linux-kernel@vger.kernel.org, Adrian Hunter , Corey Ashford , David Ahern , Frederic Weisbecker , Ingo Molnar , Namhyung Kim , Paul Mackerras , Peter Zijlstra , Stephane Eranian Subject: Re: [PATCH 05/14] perf tools: Add dsos__new function Message-ID: <20150303162035.GD2289@redhat.com> References: <1425396581-17716-1-git-send-email-jolsa@kernel.org> <1425396581-17716-6-git-send-email-jolsa@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1425396581-17716-6-git-send-email-jolsa@kernel.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.20 (2009-12-10) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Tue, Mar 03, 2015 at 04:29:32PM +0100, Jiri Olsa escreveu: > 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 > Cc: Adrian Hunter > Cc: Arnaldo Carvalho de Melo > Cc: Corey Ashford > Cc: David Ahern > Cc: Frederic Weisbecker > Cc: Ingo Molnar > Cc: Namhyung Kim > Cc: Paul Mackerras > Cc: Peter Zijlstra > Cc: Stephane Eranian > --- > tools/perf/util/dso.c | 21 ++++++++++++--------- > 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 be368414036c..fc54cb81c7f8 100644 > --- a/tools/perf/util/dso.c > +++ b/tools/perf/util/dso.c > @@ -1005,21 +1005,24 @@ struct dso *dsos__find(const struct dsos *dsos, const char *name, > return dso__find_by_longname(&dsos->root, name); > } > > -struct dso *__dsos__findnew(struct dsos *dsos, const char *name) > +struct dso *dsos__new(struct dsos *dsos, const char *name) When I read dsos__new() I think that it will surely return a 'struct dsos' pointer, as it is the constructor ('__new') for the 'dsos' class. :-) Right now we don't have a constructor for dsos, because its only used in machine where they are not m'allocated, i.e. we use just dsos__init(), but if we ever need a constructor for it, it will be called dsos__new(). So, to use the same rationale for dsos__findnew(), we can call it dsos__addnew(), because it will not find anything, just add a new dso. - Arnaldo > { > - struct dso *dso = dsos__find(dsos, name, false); > + struct dso *dso = dso__new(name); > > - if (!dso) { > - dso = dso__new(name); > - if (dso != NULL) { > - dsos__add(dsos, dso); > - dso__set_basename(dso); > - } > + if (dso != NULL) { > + dsos__add(dsos, dso); > + dso__set_basename(dso); > } > - > return dso; > } > > +struct dso *__dsos__findnew(struct dsos *dsos, const char *name) > +{ > + struct dso *dso = dsos__find(dsos, name, false); > + > + return dso ? dso : dsos__new(dsos, name); > +} > + > size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, > bool (skip)(struct dso *dso, int parm), int parm) > { > diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h > index ced92841ff97..a712cbcd3a72 100644 > --- a/tools/perf/util/dso.h > +++ b/tools/perf/util/dso.h > @@ -249,6 +249,7 @@ struct dso *dso__kernel_findnew(struct machine *machine, const char *name, > const char *short_name, int dso_type); > > void dsos__add(struct dsos *dsos, struct dso *dso); > +struct dso *dsos__new(struct dsos *dsos, const char *name); > struct dso *dsos__find(const struct dsos *dsos, const char *name, > bool cmp_short); > struct dso *__dsos__findnew(struct dsos *dsos, const char *name); > -- > 1.9.3