From: Junio C Hamano Date: Thu, 02 Feb 2012 18:34:07 GMT Subject: Re: [PATCH 6/9] grep: cache userdiff_driver in grep_source Message-ID: <7v4nv9xexs.fsf@alter.siamese.dyndns.org> In-Reply-To: <20120202082043.GF6786@sigill.intra.peff.net> Jeff King writes: > - 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? > @@ -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: