From 685b2925757e98624e37abe09d49c205a7db5943 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Fri, 27 Jan 2017 18:02:02 -0800 Subject: attr: eliminate global check_all_attr array Currently there is a reliance on 'check_all_attr' which is a global array of 'attr_check_item' items which is used to store the value of each attribute during the collection process. This patch eliminates this global and instead creates an array per 'attr_check' instance which is then used in the attribute collection process. This brings the attribute system one step closer to being thread-safe. Signed-off-by: Brandon Williams Signed-off-by: Junio C Hamano --- attr.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'attr.h') diff --git a/attr.h b/attr.h index 898e1a8c99..5aaf55c3e3 100644 --- a/attr.h +++ b/attr.h @@ -4,6 +4,9 @@ /* An attribute is a pointer to this opaque structure */ struct git_attr; +/* opaque structure used internally for attribute collection */ +struct all_attrs_item; + /* * Given a string, return the gitattribute object that * corresponds to it. @@ -33,6 +36,8 @@ struct attr_check { int nr; int alloc; struct attr_check_item *items; + int all_attrs_nr; + struct all_attrs_item *all_attrs; }; extern struct attr_check *attr_check_alloc(void); -- cgit v1.2.3