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:
Nguyễn Thái Ngọc Duy 2018-09-21 17:57:28 +02:00 committed by Junio C Hamano
parent 32eaa46883
commit f4a55b2797
3 changed files with 17 additions and 7 deletions

View File

@ -76,7 +76,7 @@ static void *result(struct merge_list *entry, unsigned long *size)
their = NULL; their = NULL;
if (entry) if (entry)
their = entry->blob; 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) static void *origin(struct merge_list *entry, unsigned long *size)

View File

@ -29,7 +29,12 @@ static void free_mmfile(mmfile_t *f)
free(f->ptr); 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; int merge_status;
mmbuffer_t res; 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, merge_status = ll_merge(&res, path, base, NULL,
our, ".our", their, ".their", our, ".our", their, ".their",
&the_index, NULL); istate, NULL);
if (merge_status < 0) if (merge_status < 0)
return NULL; return NULL;
@ -50,7 +55,9 @@ static void *three_way_filemerge(const char *path, mmfile_t *base, mmfile_t *our
return res.ptr; 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; void *res = NULL;
mmfile_t f1, f2, common; 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.ptr = xstrdup("");
common.size = 0; 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); free_mmfile(&common);
out_free_f2_f1: out_free_f2_f1:
free_mmfile(&f2); free_mmfile(&f2);

View File

@ -1,8 +1,11 @@
#ifndef MERGE_BLOBS_H #ifndef MERGE_BLOBS_H
#define 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 */ #endif /* MERGE_BLOBS_H */