Commit 9c9aa1ba by Edward Thomson

filter: take `temp_buf` in `git_filter_options`

parent d05218b0
...@@ -1440,6 +1440,7 @@ static int blob_content_to_file( ...@@ -1440,6 +1440,7 @@ static int blob_content_to_file(
} }
filter_opts.attr_session = &data->attr_session; filter_opts.attr_session = &data->attr_session;
filter_opts.temp_buf = &data->tmp;
if (!data->opts.disable_filters && if (!data->opts.disable_filters &&
(error = git_filter_list__load_ext( (error = git_filter_list__load_ext(
...@@ -1447,9 +1448,6 @@ static int blob_content_to_file( ...@@ -1447,9 +1448,6 @@ static int blob_content_to_file(
GIT_FILTER_TO_WORKTREE, &filter_opts))) GIT_FILTER_TO_WORKTREE, &filter_opts)))
return error; return error;
if (fl)
git_filter_list__set_temp_buf(fl, &data->tmp);
/* setup the writer */ /* setup the writer */
memset(&writer, 0, sizeof(struct checkout_stream)); memset(&writer, 0, sizeof(struct checkout_stream));
writer.base.write = checkout_stream_write; writer.base.write = checkout_stream_write;
...@@ -2057,6 +2055,7 @@ static int checkout_write_merge( ...@@ -2057,6 +2055,7 @@ static int checkout_write_merge(
in_data.size = result.len; in_data.size = result.len;
filter_opts.attr_session = &data->attr_session; filter_opts.attr_session = &data->attr_session;
filter_opts.temp_buf = &data->tmp;
if ((error = git_filter_list__load_ext( if ((error = git_filter_list__load_ext(
&fl, data->repo, NULL, git_buf_cstr(&path_workdir), &fl, data->repo, NULL, git_buf_cstr(&path_workdir),
......
...@@ -517,8 +517,12 @@ int git_filter_list__load_ext( ...@@ -517,8 +517,12 @@ int git_filter_list__load_ext(
else if (error < 0) else if (error < 0)
break; break;
else { else {
if (!fl && (error = filter_list_new(&fl, &src)) < 0) if (!fl) {
return error; if ((error = filter_list_new(&fl, &src)) < 0)
return error;
fl->temp_buf = filter_opts->temp_buf;
}
fe = git_array_alloc(fl->filters); fe = git_array_alloc(fl->filters);
GITERR_CHECK_ALLOC(fe); GITERR_CHECK_ALLOC(fe);
...@@ -553,11 +557,6 @@ int git_filter_list_load( ...@@ -553,11 +557,6 @@ int git_filter_list_load(
filters, repo, blob, path, mode, &filter_opts); filters, repo, blob, path, mode, &filter_opts);
} }
void git_filter_list__set_temp_buf(git_filter_list *fl, git_buf *temp_buf)
{
fl->temp_buf = temp_buf;
}
void git_filter_list_free(git_filter_list *fl) void git_filter_list_free(git_filter_list *fl)
{ {
uint32_t i; uint32_t i;
......
...@@ -26,14 +26,12 @@ typedef enum { ...@@ -26,14 +26,12 @@ typedef enum {
typedef struct { typedef struct {
git_attr_session *attr_session; git_attr_session *attr_session;
git_buf *temp_buf;
uint32_t flags; uint32_t flags;
} git_filter_options; } git_filter_options;
#define GIT_FILTER_OPTIONS_INIT {0} #define GIT_FILTER_OPTIONS_INIT {0}
extern void git_filter_list__set_temp_buf(
git_filter_list *fl, git_buf *temp_buf);
extern void git_filter_free(git_filter *filter); extern void git_filter_free(git_filter *filter);
extern int git_filter_list__load_ext( extern int git_filter_list__load_ext(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment