Re: [PATCH 3/6] pathspec: cache string length when initialize pathspec
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 27, 2010, 22:19 UTC
- Message-ID
- <7v62xqx20o.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1284938514-16663-4-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
> Subject: Re: [PATCH 3/6] pathspec: cache string length when initialize pathspec
s/initialize/initializing/;
Show 21 quoted lines
> This field will be used when tree_entry_interesting() is converted to
> use struct pathspec. Currently it uses pathlens[] in struct
> diff_options to avoid calculating string over and over again.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
> cache.h | 3 +++
> dir.c | 11 ++++++++++-
> 2 files changed, 13 insertions(+), 1 deletions(-)
>
> diff --git a/cache.h b/cache.h
> index 6227ddb..045c9fc 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -495,6 +495,9 @@ extern int ie_modified(const struct index_state *, struct cache_entry *, struct
> struct pathspec {
> const char **raw;
> int nr;
> + struct pathspec_item {
> + int len;
> + } *items;Hmm... I would have expected to see
struct pathspec_item {
const char *pattern;
int len;
};
struct pathspec {
struct pathspec_item *items;
int nr;
};as you would be allocating a structure anyway, but persumably many places take their input as a NULL terminated "char **" array, and keeping such an array around as the "raw" field may be easier in refactoring.