Stefan Beller <sbeller@xxxxxxxxxx> writes: > +* Allocate an array of `struct git_attr_result` either on the stack > + or via `git_attr_result_alloc` on the heap when the result size > + is not known at compile time. The call to initialize > the result is not thread safe, because different threads need their > own thread local result anyway. Do you want to keep the last sentence? "The call to initialize the result is not thread safe..."? Is that true? > @@ -103,7 +105,7 @@ To see how attributes "crlf" and "ident" are set > for different paths. > const char *path; > struct git_attr_result result[2]; > > - git_check_attr(path, check, result); > + git_check_attr(path, &check, result); What's the point of this change? Isn't check typically a pointer already?