Re: [PATCH 3/6] pathspec: cache string length when initialize pathspec

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/9/28 Junio C Hamano <gitster@xxxxxxxxx>:
> Nguyán ThÃi Ngác Duy Â<pclouds@xxxxxxxxx> writes:
>
>> Subject: Re: [PATCH 3/6] pathspec: cache string length when initialize pathspec
>
> s/initialize/initializing/;
>
>> 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@xxxxxxxxx>
>> ---
>> Â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.

pathspec_item.pattern is added later on when I implement negative
pathspec so it's not too different from your expectation. "raw"
however is kept. The reason (again in my WIP negative pathspec) is
that I use "!" alone to denote a negative pathspec. So if user gives {
"foo", "!", "foo/bar", NULL }, "raw" will contain exactly that, but
there are only two pathspec_item for "foo" and "foo/bar" (with
negative flag set).
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]