From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Jean Delvare <jdelvare@suse.de>, Michal Marek <mmarek@suse.cz>
Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
Roland Eggner <edvx1@systemanalysen.net>,
Wang YanQing <udknight@gmail.com>
Subject: Re: [PATCH 12/15] kconfig: sort found symbols by relevance
Date: Wed, 10 Jul 2013 22:46:48 +0200 [thread overview]
Message-ID: <20130710204648.GE3297@free.fr> (raw)
In-Reply-To: <20130708173535.GB3206@free.fr>
Michal, All,
On 2013-07-08 19:35 +0200, Yann E. MORIN spake thusly:
> On 2013-07-08 13:19 +0200, Jean Delvare spake thusly:
> > Le Monday 24 June 2013 à 20:11 +0200, Yann E. MORIN a écrit :
> > > From: "Yann E. MORIN" <yann.morin.1998@free.fr>
> [--SNIP--]
> > > Since the search can be a regexp, it is possible that more than one symbol
> > > matches exactly. In this case, we can't decide which to sort first, so we
> > > fallback to alphabeticall sort.
[--SNIP--]
> > > Reported-by: Jean Delvare <jdelvare@suse.de>
> > > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > > Cc: Jean Delvare <jdelvare@suse.de>
> > > Cc: Michal Marek <mmarek@suse.cz>
> > > Cc: Roland Eggner <edvx1@systemanalysen.net>
> > > Cc: Wang YanQing <udknight@gmail.com>
> >
> > I tested it and it works fine, thanks!
> >
> > Tested-by: Jean Delvare <jdelvare@suse.de>
> >
> > Now comes my late review. Overall I like the idea and the code but a few
> > things could be improved:
>
> Since this is already in Michal's tree, on should I proceed?
> - send an updated patch that replaces that one, or
> - send another additional patch with your proposed changes?
OK, since Michal already sent his pull-request to Linus, I'll prepare a
corrective patch I'll submit before the end of the week. Is that OK with
you, Michal?
[--SNIP--]
> > > +static int sym_rel_comp( const void *sym1, const void *sym2 )
> > > +{
> > > + struct sym_match *s1 = *(struct sym_match **)sym1;
> > > + struct sym_match *s2 = *(struct sym_match **)sym2;
> >
> > You shouldn't need these casts.
>
> Probably not, indeed, but I like to write (and read) what I expect to
> happen, and pointer arithmetics is always something I dread to foobar.
In fact, we need the cast, otherwise gcc whines about const/non-const.
[--SNIP--]
> > > for_all_symbols(i, sym) {
> > > + struct sym_match *tmp_sym_match;
> > > if (sym->flags & SYMBOL_CONST || !sym->name)
> > > continue;
> > > - if (regexec(&re, sym->name, 0, NULL, 0))
> > > + if (regexec(&re, sym->name, 1, match, 0))
> > > continue;
> > > if (cnt + 1 >= size) {
> >
> > I think the "+ 1" can be dropped because the new array is not
> > NULL-terminated.
Indeed.
> > > + sym_match_arr = tmp;
> > > }
> > > sym_calc_value(sym);
> > > - sym_arr[cnt++] = sym;
> > > + tmp_sym_match = (struct sym_match*)malloc(sizeof(struct sym_match));
> >
> > Cast not needed.
>
> OK.
>
> > In fact I don't think this allocation is needed in the first place.
> > Calling malloc for every match is rather costly. If you would have
> > allocated an array of struct sym_match (rather than only pointers
> > thereto) before, you would not need this per-symbol malloc. Struct
> > sym_match is small enough to not warrant an extra level of allocation
> > and indirection IMHO.
Indeed, it makes for cleaner code.
Thank you again! :-)
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2013-07-10 20:46 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-24 18:11 [pull request v2] Pull request for branch yem-kconfig-for-next Yann E. MORIN
2013-06-24 18:11 ` [PATCH 01/15] kconfig: Fix defconfig when one choice menu selects options that another choice menu depends on Yann E. MORIN
2013-06-24 18:11 ` [PATCH 02/15] kconfig/lxdialog: Add definitions for mininimum (re)size values Yann E. MORIN
2013-06-24 18:11 ` [PATCH 03/15] kconfig/lxdialog: Use new mininimum resize definitions in conf_choice() Yann E. MORIN
2013-06-24 18:11 ` [PATCH 04/15] kconfig/lxdialog: handle newline characters in print_autowrap() Yann E. MORIN
2013-06-24 18:11 ` [PATCH 05/15] mconf: use function calls instead of ncurses' variables LINES and COLS Yann E. MORIN
2013-06-24 18:11 ` [PATCH 06/15] nconf: " Yann E. MORIN
2013-06-24 18:11 ` [PATCH 07/15] mconf/nconf: mark empty menus/menuconfigs different from non-empty ones Yann E. MORIN
2013-06-24 18:11 ` [PATCH 08/15] scripts/config: replace hard-coded script name by a dynamic value Yann E. MORIN
2013-06-24 18:11 ` [PATCH 09/15] kconfig/conf: fix randconfig setting multiple symbols in a choice Yann E. MORIN
2013-06-25 7:23 ` Sedat Dilek
2013-06-24 18:11 ` [PATCH 10/15] kconfig/conf: accept a base-16 seed for randconfig Yann E. MORIN
2013-06-24 18:11 ` [PATCH 11/15] kconfig/conf: print the seed used to initialise the RNG " Yann E. MORIN
2013-06-24 18:11 ` [PATCH 12/15] kconfig: sort found symbols by relevance Yann E. MORIN
2013-07-08 11:19 ` Jean Delvare
2013-07-08 17:35 ` Yann E. MORIN
2013-07-10 20:46 ` Yann E. MORIN [this message]
2013-07-12 9:07 ` Jean Delvare
2013-07-13 13:06 ` Yann E. MORIN
2013-07-12 8:57 ` Jean Delvare
2013-06-24 18:11 ` [PATCH 13/15] kconfig/[mn]conf: make it explicit in the search box that a regexp is possible Yann E. MORIN
2013-07-08 11:25 ` Jean Delvare
2013-07-08 17:37 ` Yann E. MORIN
2013-07-16 14:31 ` Jean Delvare
2013-07-16 14:39 ` Yann E. MORIN
2013-06-24 18:11 ` [PATCH 14/15] kconfig: loop as long as we changed some symbols in randconfig Yann E. MORIN
2013-06-24 18:11 ` [PATCH 15/15] kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG Yann E. MORIN
2013-06-25 8:01 ` Yann E. MORIN
2013-06-25 8:10 ` Sedat Dilek
2013-06-25 20:58 ` Yann E. MORIN
2013-06-24 21:42 ` [pull request v2] Pull request for branch yem-kconfig-for-next Michal Marek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130710204648.GE3297@free.fr \
--to=yann.morin.1998@free.fr \
--cc=edvx1@systemanalysen.net \
--cc=jdelvare@suse.de \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mmarek@suse.cz \
--cc=udknight@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).