Re: [PATCH 6/9] grep: cache userdiff_driver in grep_source
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 2, 2012, 18:34 UTC
- Message-ID
- <7v4nv9xexs.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20120202082043.GF6786@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 8 quoted lines
> - grep_attr_lock();
> - drv = userdiff_find_by_path(gs->name);
> - grep_attr_unlock();
> - if (drv && drv->funcname.pattern) {
> - const struct userdiff_funcname *pe = &drv->funcname;
> + grep_source_load_driver(gs);
> + if (gs->driver->funcname.pattern) {
> + const struct userdiff_funcname *pe = &gs->driver->funcname;When we load driver, gs->driver gets at least "default" driver, so we no longer need to check for drv != NULL as we used to? Is that the reason for the slight difference here?
Show 8 quoted lines
> @@ -1237,6 +1234,7 @@ void grep_source_init(struct grep_source *gs, enum grep_source_type type,
> gs->name = name ? xstrdup(name) : NULL;
> gs->buf = NULL;
> gs->size = 0;
> + gs->driver = NULL;
>
> switch (type) {
> case GREP_SOURCE_FILE: