Avoid to duplicate commit message when is not encoded
When a commit message doesn't have encoding information and encoding output is utf-8 (default) then an useless xstrdup() of commit message is done. If we assume most of users live in an utf-8 world, this useless copy is the common case. Performance issue found with KCachegrind. Signed-off-by: Marco Costalba <mcostalba@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									e5633cbb85
								
							
						
					
					
						commit
						c4640fe8d9
					
				
							
								
								
									
										3
									
								
								commit.c
								
								
								
								
							
							
						
						
									
										3
									
								
								commit.c
								
								
								
								
							|  | @ -721,7 +721,10 @@ static char *logmsg_reencode(const struct commit *commit, | ||||||
| 	encoding = get_header(commit, "encoding"); | 	encoding = get_header(commit, "encoding"); | ||||||
| 	use_encoding = encoding ? encoding : utf8; | 	use_encoding = encoding ? encoding : utf8; | ||||||
| 	if (!strcmp(use_encoding, output_encoding)) | 	if (!strcmp(use_encoding, output_encoding)) | ||||||
|  | 		if (encoding) /* we'll strip encoding header later */ | ||||||
| 			out = xstrdup(commit->buffer); | 			out = xstrdup(commit->buffer); | ||||||
|  | 		else | ||||||
|  | 			return NULL; /* nothing to do */ | ||||||
| 	else | 	else | ||||||
| 		out = reencode_string(commit->buffer, | 		out = reencode_string(commit->buffer, | ||||||
| 				      output_encoding, use_encoding); | 				      output_encoding, use_encoding); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Marco Costalba
						Marco Costalba