attr: pass struct attr_check to collect_some_attrs
The old callchain used to take an array of attr_check_item items. Instead pass the 'attr_check' container object to 'collect_some_attrs()' and access the fields in the data structure directly. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
		 Brandon Williams
					Brandon Williams
				
			
				
					committed by
					
						 Junio C Hamano
						Junio C Hamano
					
				
			
			
				
	
			
			
			 Junio C Hamano
						Junio C Hamano
					
				
			
						parent
						
							1295c21524
						
					
				
				
					commit
					6bc2e3f709
				
			
							
								
								
									
										33
									
								
								attr.c
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								attr.c
									
									
									
									
									
								
							| @ -846,9 +846,7 @@ static int macroexpand_one(int nr, int rem) | |||||||
|  * check_all_attr. If num is non-zero, only attributes in check[] are |  * check_all_attr. If num is non-zero, only attributes in check[] are | ||||||
|  * collected. Otherwise all attributes are collected. |  * collected. Otherwise all attributes are collected. | ||||||
|  */ |  */ | ||||||
| static void collect_some_attrs(const char *path, int num, | static void collect_some_attrs(const char *path, struct attr_check *check) | ||||||
| 			       struct attr_check_item *check) |  | ||||||
|  |  | ||||||
| { | { | ||||||
| 	struct attr_stack *stk; | 	struct attr_stack *stk; | ||||||
| 	int i, pathlen, rem, dirlen; | 	int i, pathlen, rem, dirlen; | ||||||
| @ -871,17 +869,18 @@ static void collect_some_attrs(const char *path, int num, | |||||||
| 	prepare_attr_stack(path, dirlen); | 	prepare_attr_stack(path, dirlen); | ||||||
| 	for (i = 0; i < attr_nr; i++) | 	for (i = 0; i < attr_nr; i++) | ||||||
| 		check_all_attr[i].value = ATTR__UNKNOWN; | 		check_all_attr[i].value = ATTR__UNKNOWN; | ||||||
| 	if (num && !cannot_trust_maybe_real) { | 	if (check->nr && !cannot_trust_maybe_real) { | ||||||
| 		rem = 0; | 		rem = 0; | ||||||
| 		for (i = 0; i < num; i++) { | 		for (i = 0; i < check->nr; i++) { | ||||||
| 			if (!check[i].attr->maybe_real) { | 			const struct git_attr *a = check->items[i].attr; | ||||||
|  | 			if (!a->maybe_real) { | ||||||
| 				struct attr_check_item *c; | 				struct attr_check_item *c; | ||||||
| 				c = check_all_attr + check[i].attr->attr_nr; | 				c = check_all_attr + a->attr_nr; | ||||||
| 				c->value = ATTR__UNSET; | 				c->value = ATTR__UNSET; | ||||||
| 				rem++; | 				rem++; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		if (rem == num) | 		if (rem == check->nr) | ||||||
| 			return; | 			return; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @ -890,18 +889,17 @@ static void collect_some_attrs(const char *path, int num, | |||||||
| 		rem = fill(path, pathlen, basename_offset, stk, rem); | 		rem = fill(path, pathlen, basename_offset, stk, rem); | ||||||
| } | } | ||||||
|  |  | ||||||
| static int git_check_attrs(const char *path, int num, | int git_check_attr(const char *path, struct attr_check *check) | ||||||
| 			   struct attr_check_item *check) |  | ||||||
| { | { | ||||||
| 	int i; | 	int i; | ||||||
|  |  | ||||||
| 	collect_some_attrs(path, num, check); | 	collect_some_attrs(path, check); | ||||||
|  |  | ||||||
| 	for (i = 0; i < num; i++) { | 	for (i = 0; i < check->nr; i++) { | ||||||
| 		const char *value = check_all_attr[check[i].attr->attr_nr].value; | 		const char *value = check_all_attr[check->items[i].attr->attr_nr].value; | ||||||
| 		if (value == ATTR__UNKNOWN) | 		if (value == ATTR__UNKNOWN) | ||||||
| 			value = ATTR__UNSET; | 			value = ATTR__UNSET; | ||||||
| 		check[i].value = value; | 		check->items[i].value = value; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return 0; | 	return 0; | ||||||
| @ -912,7 +910,7 @@ void git_all_attrs(const char *path, struct attr_check *check) | |||||||
| 	int i; | 	int i; | ||||||
|  |  | ||||||
| 	attr_check_reset(check); | 	attr_check_reset(check); | ||||||
| 	collect_some_attrs(path, check->nr, check->items); | 	collect_some_attrs(path, check); | ||||||
|  |  | ||||||
| 	for (i = 0; i < attr_nr; i++) { | 	for (i = 0; i < attr_nr; i++) { | ||||||
| 		const char *name = check_all_attr[i].attr->name; | 		const char *name = check_all_attr[i].attr->name; | ||||||
| @ -925,11 +923,6 @@ void git_all_attrs(const char *path, struct attr_check *check) | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| int git_check_attr(const char *path, struct attr_check *check) |  | ||||||
| { |  | ||||||
| 	return git_check_attrs(path, check->nr, check->items); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void git_attr_set_direction(enum git_attr_direction new, struct index_state *istate) | void git_attr_set_direction(enum git_attr_direction new, struct index_state *istate) | ||||||
| { | { | ||||||
| 	enum git_attr_direction old = direction; | 	enum git_attr_direction old = direction; | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user