Merge branch 'maint'
* maint: Clear the delta base cache during fast-import checkpoint
This commit is contained in:
		
							
								
								
									
										1
									
								
								cache.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								cache.h
									
									
									
									
									
								
							| @ -830,6 +830,7 @@ extern unsigned char* use_pack(struct packed_git *, struct pack_window **, off_t | |||||||
| extern void close_pack_windows(struct packed_git *); | extern void close_pack_windows(struct packed_git *); | ||||||
| extern void unuse_pack(struct pack_window **); | extern void unuse_pack(struct pack_window **); | ||||||
| extern void free_pack_by_name(const char *); | extern void free_pack_by_name(const char *); | ||||||
|  | extern void clear_delta_base_cache(void); | ||||||
| extern struct packed_git *add_packed_git(const char *, int, int); | extern struct packed_git *add_packed_git(const char *, int, int); | ||||||
| extern const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t); | extern const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t); | ||||||
| extern off_t nth_packed_object_offset(const struct packed_git *, uint32_t); | extern off_t nth_packed_object_offset(const struct packed_git *, uint32_t); | ||||||
|  | |||||||
| @ -945,6 +945,7 @@ static void end_packfile(void) | |||||||
| { | { | ||||||
| 	struct packed_git *old_p = pack_data, *new_p; | 	struct packed_git *old_p = pack_data, *new_p; | ||||||
|  |  | ||||||
|  | 	clear_delta_base_cache(); | ||||||
| 	if (object_count) { | 	if (object_count) { | ||||||
| 		char *idx_name; | 		char *idx_name; | ||||||
| 		int i; | 		int i; | ||||||
|  | |||||||
| @ -1663,6 +1663,13 @@ static inline void release_delta_base_cache(struct delta_base_cache_entry *ent) | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void clear_delta_base_cache(void) | ||||||
|  | { | ||||||
|  | 	unsigned long p; | ||||||
|  | 	for (p = 0; p < MAX_DELTA_CACHE; p++) | ||||||
|  | 		release_delta_base_cache(&delta_base_cache[p]); | ||||||
|  | } | ||||||
|  |  | ||||||
| static void add_delta_base_cache(struct packed_git *p, off_t base_offset, | static void add_delta_base_cache(struct packed_git *p, off_t base_offset, | ||||||
| 	void *base, unsigned long base_size, enum object_type type) | 	void *base, unsigned long base_size, enum object_type type) | ||||||
| { | { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Junio C Hamano
					Junio C Hamano