When a ref crosses a memory page boundary, we restart the parsing
at the beginning with the bytewise code. Pass the original flags
to that code, rather than the current flags.
Signed-off-by: David Turner dtur...@twitter.com
---
refs.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/refs.c b/refs.c
index 20e2bf1..82e4842 100644
--- a/refs.c
+++ b/refs.c
@@ -153,6 +153,7 @@ int check_refname_format(const char *refname, int flags)
const __m128i tilde_lb = _mm_set1_epi8('~' - 1);
int component_count = 0;
+ int orig_flags = flags;
if (refname[0] == 0 || refname[0] == '/') {
/* entirely empty ref or initial ref component */
@@ -178,7 +179,7 @@ int check_refname_format(const char *refname, int flags)
* End-of-page; fall back to slow method for
* this entire ref.
*/
- return check_refname_format_bytewise(refname, flags);
+ return check_refname_format_bytewise(refname,
orig_flags);
tmp = _mm_loadu_si128((__m128i *)cp);
tmp1 = _mm_loadu_si128((__m128i *)(cp + 1));
--
2.0.0.390.gcb682f8
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html