On Wed, Jun 8, 2016 at 3:58 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > As the topic is in 'next' already, I'll leave this floating near the > tip for now, until we can rewind the topic after the next release. I don't quite understand the motivation behind this commit. We return the last element to allow succeeding operations access to the bottom of the stack without needing to walk it? This makes the follow up operations faster, because we expect the stack to be larger than 5 elements. ? > --- > attr.c | 9 ++++++--- > attr.h | 2 +- > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/attr.c b/attr.c > index 4e2172a..0e61950 100644 > --- a/attr.c > +++ b/attr.c > @@ -899,13 +899,16 @@ struct git_attr_check *git_attr_check_alloc(void) > return xcalloc(1, sizeof(struct git_attr_check)); > } > > -void git_attr_check_append(struct git_attr_check *check, > - const struct git_attr *attr) > +struct git_attr_check_elem *git_attr_check_append(struct git_attr_check *check, > + const struct git_attr *attr) > { > + struct git_attr_check_elem *elem; > if (check->finalized) > die("BUG: append after git_attr_check structure is finalized"); > ALLOC_GROW(check->check, check->check_nr + 1, check->check_alloc); > - check->check[check->check_nr++].attr = attr; > + elem = &check->check[check->check_nr++]; > + elem->attr = attr; > + return elem; > } > > void git_attr_check_clear(struct git_attr_check *check) > diff --git a/attr.h b/attr.h > index fc72030..40abc16 100644 > --- a/attr.h > +++ b/attr.h > @@ -47,7 +47,7 @@ extern int git_check_attr(const char *path, struct git_attr_check *); > extern int git_check_attr_counted(const char *, int, struct git_attr_check *); > > extern struct git_attr_check *git_attr_check_alloc(void); > -extern void git_attr_check_append(struct git_attr_check *, const struct git_attr *); > +extern struct git_attr_check_elem *git_attr_check_append(struct git_attr_check *, const struct git_attr *); > > extern void git_attr_check_clear(struct git_attr_check *); > extern void git_attr_check_free(struct git_attr_check *); > -- > 2.9.0-rc2-262-g9161bbf > > -- > 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 -- 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