merge-blobs.c: remove implicit dependency on the_index
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
		
				
					committed by
					
						
						Junio C Hamano
					
				
			
			
				
	
			
			
			
						parent
						
							32eaa46883
						
					
				
				
					commit
					f4a55b2797
				
			@ -76,7 +76,7 @@ static void *result(struct merge_list *entry, unsigned long *size)
 | 
			
		||||
	their = NULL;
 | 
			
		||||
	if (entry)
 | 
			
		||||
		their = entry->blob;
 | 
			
		||||
	return merge_blobs(path, base, our, their, size);
 | 
			
		||||
	return merge_blobs(&the_index, path, base, our, their, size);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void *origin(struct merge_list *entry, unsigned long *size)
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,12 @@ static void free_mmfile(mmfile_t *f)
 | 
			
		||||
	free(f->ptr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void *three_way_filemerge(const char *path, mmfile_t *base, mmfile_t *our, mmfile_t *their, unsigned long *size)
 | 
			
		||||
static void *three_way_filemerge(struct index_state *istate,
 | 
			
		||||
				 const char *path,
 | 
			
		||||
				 mmfile_t *base,
 | 
			
		||||
				 mmfile_t *our,
 | 
			
		||||
				 mmfile_t *their,
 | 
			
		||||
				 unsigned long *size)
 | 
			
		||||
{
 | 
			
		||||
	int merge_status;
 | 
			
		||||
	mmbuffer_t res;
 | 
			
		||||
@ -42,7 +47,7 @@ static void *three_way_filemerge(const char *path, mmfile_t *base, mmfile_t *our
 | 
			
		||||
	 */
 | 
			
		||||
	merge_status = ll_merge(&res, path, base, NULL,
 | 
			
		||||
				our, ".our", their, ".their",
 | 
			
		||||
				&the_index, NULL);
 | 
			
		||||
				istate, NULL);
 | 
			
		||||
	if (merge_status < 0)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
@ -50,7 +55,9 @@ static void *three_way_filemerge(const char *path, mmfile_t *base, mmfile_t *our
 | 
			
		||||
	return res.ptr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *merge_blobs(const char *path, struct blob *base, struct blob *our, struct blob *their, unsigned long *size)
 | 
			
		||||
void *merge_blobs(struct index_state *istate, const char *path,
 | 
			
		||||
		  struct blob *base, struct blob *our,
 | 
			
		||||
		  struct blob *their, unsigned long *size)
 | 
			
		||||
{
 | 
			
		||||
	void *res = NULL;
 | 
			
		||||
	mmfile_t f1, f2, common;
 | 
			
		||||
@ -83,7 +90,7 @@ void *merge_blobs(const char *path, struct blob *base, struct blob *our, struct
 | 
			
		||||
		common.ptr = xstrdup("");
 | 
			
		||||
		common.size = 0;
 | 
			
		||||
	}
 | 
			
		||||
	res = three_way_filemerge(path, &common, &f1, &f2, size);
 | 
			
		||||
	res = three_way_filemerge(istate, path, &common, &f1, &f2, size);
 | 
			
		||||
	free_mmfile(&common);
 | 
			
		||||
out_free_f2_f1:
 | 
			
		||||
	free_mmfile(&f2);
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,11 @@
 | 
			
		||||
#ifndef MERGE_BLOBS_H
 | 
			
		||||
#define MERGE_BLOBS_H
 | 
			
		||||
 | 
			
		||||
#include "blob.h"
 | 
			
		||||
struct blob;
 | 
			
		||||
struct index_state;
 | 
			
		||||
 | 
			
		||||
extern void *merge_blobs(const char *, struct blob *, struct blob *, struct blob *, unsigned long *);
 | 
			
		||||
extern void *merge_blobs(struct index_state *, const char *,
 | 
			
		||||
			 struct blob *, struct blob *,
 | 
			
		||||
			 struct blob *, unsigned long *);
 | 
			
		||||
 | 
			
		||||
#endif /* MERGE_BLOBS_H */
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user