[prev in list] [next in list] [prev in thread] [next in thread]
List: gameoftrees
Subject: Re: move opentemp out of diffreg.c
From: Tracey Emery <tracey () traceyemery ! net>
Date: 2022-06-30 10:37:34
Message-ID: 20220630103734.olll5r6s7vra2d7b () traceyemery ! net
[Download RAW message or body]
On Thu, Jun 30, 2022 at 12:21:17PM +0200, Stefan Sperling wrote:
> A few more got_opentemp() calls which gotwebd will trip over
> exist in lib/diffreg.c. This patch moves them up to callers.
>
> ok?
ok
>
> diff 9b058f456d15d60a89334ce3e7f0a7c22e182c55 c235d605cca5f3d7bda019aefd04505ea97a7ac8
> commit - 9b058f456d15d60a89334ce3e7f0a7c22e182c55
> commit + c235d605cca5f3d7bda019aefd04505ea97a7ac8
> blob - 2dceeed3a7a54bee61a491f92527df8295059f95
> blob + 277183116cdb51d8f491172df6f141ad77e57c26
> --- got/got.c
> +++ got/got.c
> @@ -3564,17 +3564,17 @@ diff_blobs(struct got_object_id *blob_id1, struct got_
> fd1);
> if (err)
> goto done;
> - f1 = got_opentemp();
> - if (f1 == NULL) {
> - err = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> }
>
> err = got_object_open_as_blob(&blob2, repo, blob_id2, 8192, fd2);
> if (err)
> goto done;
>
> + f1 = got_opentemp();
> + if (f1 == NULL) {
> + err = got_error_from_errno("got_opentemp");
> + goto done;
> + }
> f2 = got_opentemp();
> if (f2 == NULL) {
> err = got_error_from_errno("got_opentemp");
> @@ -3615,12 +3615,6 @@ diff_trees(struct got_object_id *tree_id1, struct got_
> err = got_object_open_as_tree(&tree1, repo, tree_id1);
> if (err)
> goto done;
> - f1 = got_opentemp();
> - if (f1 == NULL) {
> - err = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> -
> fd1 = got_opentempfd();
> if (fd1 == -1) {
> err = got_error_from_errno("got_opentempfd");
> @@ -3632,6 +3626,12 @@ diff_trees(struct got_object_id *tree_id1, struct got_
> if (err)
> goto done;
>
> + f1 = got_opentemp();
> + if (f1 == NULL) {
> + err = got_error_from_errno("got_opentemp");
> + goto done;
> + }
> +
> f2 = got_opentemp();
> if (f2 == NULL) {
> err = got_error_from_errno("got_opentemp");
> @@ -4592,6 +4592,8 @@ struct print_diff_arg {
> int diff_staged;
> int ignore_whitespace;
> int force_text_diff;
> + FILE *f1;
> + FILE *f2;
> };
>
> /*
> @@ -4650,10 +4652,11 @@ print_diff(void *arg, unsigned char status, unsigned c
> const struct got_error *err = NULL;
> struct got_blob_object *blob1 = NULL;
> int fd = -1, fd1 = -1, fd2 = -1;
> - FILE *f1 = NULL, *f2 = NULL;
> + FILE *f2 = NULL;
> char *abspath = NULL, *label1 = NULL;
> struct stat sb;
> off_t size1 = 0;
> + int f2_exists = 1;
>
> if (a->diff_staged) {
> if (staged_status != GOT_STATUS_MODIFY &&
> @@ -4672,6 +4675,13 @@ print_diff(void *arg, unsigned char status, unsigned c
> return NULL;
> }
>
> + err = got_opentemp_truncate(a->f1);
> + if (err)
> + return got_error_from_errno("got_opentemp_truncate");
> + err = got_opentemp_truncate(a->f2);
> + if (err)
> + return got_error_from_errno("got_opentemp_truncate");
> +
> if (!a->header_shown) {
> printf("diff %s%s\n", a->diff_staged ? "-s " : "",
> got_worktree_get_root_path(a->worktree));
> @@ -4698,16 +4708,6 @@ print_diff(void *arg, unsigned char status, unsigned c
> default:
> return got_error(GOT_ERR_FILE_STATUS);
> }
> - f1 = got_opentemp();
> - if (f1 == NULL) {
> - err = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> - f2 = got_opentemp();
> - if (f2 == NULL) {
> - err = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> fd1 = got_opentempfd();
> if (fd1 == -1) {
> err = got_error_from_errno("got_opentempfd");
> @@ -4718,9 +4718,10 @@ print_diff(void *arg, unsigned char status, unsigned c
> err = got_error_from_errno("got_opentempfd");
> goto done;
> }
> - err = got_diff_objects_as_blobs(NULL, NULL, f1, f2, fd1, fd2,
> - blob_id, staged_blob_id, label1, label2, a->diff_context,
> - a->ignore_whitespace, a->force_text_diff, a->repo, stdout);
> + err = got_diff_objects_as_blobs(NULL, NULL, a->f1, a->f2,
> + fd1, fd2, blob_id, staged_blob_id, label1, label2,
> + a->diff_context, a->ignore_whitespace, a->force_text_diff,
> + a->repo, stdout);
> goto done;
> }
>
> @@ -4798,24 +4799,21 @@ print_diff(void *arg, unsigned char status, unsigned c
> goto done;
> }
> fd = -1;
> - } else
> + } else {
> sb.st_size = 0;
> + f2_exists = 0;
> + }
>
> if (blob1) {
> - f1 = got_opentemp();
> - if (f1 == NULL) {
> - err = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> - err = got_object_blob_dump_to_file(&size1, NULL, NULL, f1,
> - blob1);
> + err = got_object_blob_dump_to_file(&size1, NULL, NULL,
> + a->f1, blob1);
> if (err)
> goto done;
> }
>
> - err = got_diff_blob_file(blob1, f1, size1, label1, f2, sb.st_size,
> - path, a->diff_context, a->ignore_whitespace, a->force_text_diff,
> - stdout);
> + err = got_diff_blob_file(blob1, a->f1, size1, label1, f2 ? f2 : a->f2,
> + f2_exists, sb.st_size, path, a->diff_context, a->ignore_whitespace,
> + a->force_text_diff, stdout);
> done:
> if (fd1 != -1 && close(fd1) == -1 && err == NULL)
> err = got_error_from_errno("close");
> @@ -4823,12 +4821,10 @@ done:
> err = got_error_from_errno("close");
> if (blob1)
> got_object_blob_close(blob1);
> - if (f1 && fclose(f1) == EOF && err == NULL)
> - err = got_error_from_errno("fclose");
> - if (f2 && fclose(f2) == EOF && err == NULL)
> - err = got_error_from_errno("fclose");
> if (fd != -1 && close(fd) == -1 && err == NULL)
> err = got_error_from_errno("close");
> + if (f2 && fclose(f2) == EOF && err == NULL)
> + err = got_error_from_errno("fclose");
> free(abspath);
> return err;
> }
> @@ -4991,6 +4987,18 @@ cmd_diff(int argc, char *argv[])
> }
> }
>
> + f1 = got_opentemp();
> + if (f1 == NULL) {
> + error = got_error_from_errno("got_opentemp");
> + goto done;
> + }
> +
> + f2 = got_opentemp();
> + if (f2 == NULL) {
> + error = got_error_from_errno("got_opentemp");
> + goto done;
> + }
> +
> if (ncommit_args == 0 && (ids[0] == NULL || ids[1] == NULL)) {
> struct print_diff_arg arg;
> char *id_str;
> @@ -5029,6 +5037,8 @@ cmd_diff(int argc, char *argv[])
> arg.diff_staged = diff_staged;
> arg.ignore_whitespace = ignore_whitespace;
> arg.force_text_diff = force_text_diff;
> + arg.f1 = f1;
> + arg.f2 = f2;
>
> error = got_worktree_status(worktree, &paths, repo, 0,
> print_diff, &arg, check_cancelled, NULL);
> @@ -5150,18 +5160,6 @@ cmd_diff(int argc, char *argv[])
> worktree = NULL;
> }
>
> - f1 = got_opentemp();
> - if (f1 == NULL) {
> - error = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> -
> - f2 = got_opentemp();
> - if (f2 == NULL) {
> - error = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> -
> fd1 = got_opentempfd();
> if (fd1 == -1) {
> error = got_error_from_errno("got_opentempfd");
> blob - c587513f34441a66ffd34aa5788327dc50f06c7d
> blob + e04cc7fd9e3459de5ae8004badfe6704feaea240
> --- include/got_diff.h
> +++ include/got_diff.h
> @@ -20,11 +20,9 @@
> * for internal use; these files can be obtained from got_opentemp() and
> * must be closed by the caller.
> * If one of the blobs being diffed does not exist, all corresponding
> - * blob object and temporary file arguments should be set to NULL.
> + * blob object arguments should be set to NULL.
> * Two const char * diff header labels may be provided which will be used
> * to identify each blob in the diff output.
> - * The set of arguments relating to either blob may be NULL to indicate
> - * that no content is present on its respective side of the diff.
> * If a label is NULL, use the blob's SHA1 checksum instead.
> * The number of context lines to show in the diff must be specified as well.
> * Whitespace differences may optionally be ignored.
> @@ -38,14 +36,15 @@ const struct got_error *got_diff_blob(off_t **, size_t
> /*
> * Compute the differences between a blob and a file and write unified diff
> * text to the provided output file. The blob object, its content, and its
> - * size must be provided.The file's size must be provided, as well as a
> + * size must be provided. The file's size must be provided, as well as a
> * const char * diff header label which identifies the file.
> * An optional const char * diff header label for the blob may be provided, too.
> * The number of context lines to show in the diff must be specified as well.
> * Whitespace differences may optionally be ignored.
> */
> const struct got_error *got_diff_blob_file(struct got_blob_object *, FILE *,
> - off_t, const char *, FILE *, size_t, const char *, int, int, int, FILE *);
> + off_t, const char *, FILE *, int, size_t, const char *, int, int, int,
> + FILE *);
>
> /*
> * A callback function invoked to handle the differences between two blobs
> @@ -55,7 +54,7 @@ const struct got_error *got_diff_blob_file(struct got_
> * the second blob contains content on the new side of the diff.
> * Two open temporary files must be provided for internal use; these files
> * can be obtained from got_opentemp() and must be closed by the caller.
> - * The set of arguments relating to either blob may be NULL to indicate
> + * The blob object argument for either blob may be NULL to indicate
> * that no content is present on its respective side of the diff.
> * File modes from relevant tree objects which contain the blobs may
> * also be passed. These will be zero if not available.
> blob - 13a1b0bf323c1c003dbb7b2473b2d1a20c202a43
> blob + 500149f5a3358f499c291ab40acdc5142bf68184
> --- lib/diff.c
> +++ lib/diff.c
> @@ -215,7 +215,7 @@ got_diff_blob(off_t **line_offsets, size_t *nlines,
> static const struct got_error *
> diff_blob_file(struct got_diffreg_result **resultp,
> struct got_blob_object *blob1, FILE *f1, off_t size1, const char *label1,
> - FILE *f2, size_t size2, const char *label2, int diff_context,
> + FILE *f2, int f2_exists, size_t size2, const char *label2, int diff_context,
> int ignore_whitespace, int force_text_diff, FILE *outfile)
> {
> const struct got_error *err = NULL, *free_err;
> @@ -234,7 +234,7 @@ diff_blob_file(struct got_diffreg_result **resultp,
> if (outfile) {
> fprintf(outfile, "blob - %s\n", label1 ? label1 : idstr1);
> fprintf(outfile, "file + %s\n",
> - f2 == NULL ? "/dev/null" : label2);
> + f2_exists ? label2 : "/dev/null");
> }
>
> err = got_diffreg(&result, f1, f2, GOT_DIFF_ALGORITHM_PATIENCE,
> @@ -244,7 +244,7 @@ diff_blob_file(struct got_diffreg_result **resultp,
>
> if (outfile) {
> err = got_diffreg_output(NULL, NULL, result,
> - f1 != NULL, f2 != NULL,
> + blob1 != NULL, f2_exists,
> label2, /* show local file's path, not a blob ID */
> label2, GOT_DIFF_OUTPUT_UNIDIFF,
> diff_context, outfile);
> @@ -265,15 +265,17 @@ done:
>
> const struct got_error *
> got_diff_blob_file(struct got_blob_object *blob1, FILE *f1, off_t size1,
> - const char *label1, FILE *f2, size_t size2, const char *label2,
> - int diff_context, int ignore_whitespace, int force_text_diff, FILE *outfile)
> + const char *label1, FILE *f2, int f2_exists, size_t size2,
> + const char *label2, int diff_context, int ignore_whitespace,
> + int force_text_diff, FILE *outfile)
> {
> - return diff_blob_file(NULL, blob1, f1, size1, label1, f2, size2, label2,
> - diff_context, ignore_whitespace, force_text_diff, outfile);
> + return diff_blob_file(NULL, blob1, f1, size1, label1, f2, f2_exists,
> + size2, label2, diff_context, ignore_whitespace, force_text_diff,
> + outfile);
> }
>
> static const struct got_error *
> -diff_added_blob(struct got_object_id *id, FILE *f, int fd,
> +diff_added_blob(struct got_object_id *id, FILE *f1, FILE *f2, int fd2,
> const char *label, mode_t mode, struct got_repository *repo,
> got_diff_blob_cb cb, void *cb_arg)
> {
> @@ -285,10 +287,10 @@ diff_added_blob(struct got_object_id *id, FILE *f, int
> if (err)
> return err;
>
> - err = got_object_blob_open(&blob, repo, obj, 8192, fd);
> + err = got_object_blob_open(&blob, repo, obj, 8192, fd2);
> if (err)
> goto done;
> - err = cb(cb_arg, NULL, blob, NULL, f, NULL, id,
> + err = cb(cb_arg, NULL, blob, f1, f2, NULL, id,
> NULL, label, 0, mode, repo);
> done:
> got_object_close(obj);
> @@ -350,8 +352,8 @@ done:
> }
>
> static const struct got_error *
> -diff_deleted_blob(struct got_object_id *id, FILE *f, int fd,
> - const char *label, mode_t mode, struct got_repository *repo,
> +diff_deleted_blob(struct got_object_id *id, FILE *f1, int fd1,
> + FILE *f2, const char *label, mode_t mode, struct got_repository *repo,
> got_diff_blob_cb cb, void *cb_arg)
> {
> const struct got_error *err;
> @@ -362,10 +364,10 @@ diff_deleted_blob(struct got_object_id *id, FILE *f, i
> if (err)
> return err;
>
> - err = got_object_blob_open(&blob, repo, obj, 8192, fd);
> + err = got_object_blob_open(&blob, repo, obj, 8192, fd1);
> if (err)
> goto done;
> - err = cb(cb_arg, blob, NULL, f, NULL, id, NULL, label, NULL,
> + err = cb(cb_arg, blob, NULL, f1, f2, id, NULL, label, NULL,
> mode, 0, repo);
> done:
> got_object_close(obj);
> @@ -375,9 +377,9 @@ done:
> }
>
> static const struct got_error *
> -diff_added_tree(struct got_object_id *id, FILE *f, int fd, const char *label,
> - struct got_repository *repo, got_diff_blob_cb cb, void *cb_arg,
> - int diff_content)
> +diff_added_tree(struct got_object_id *id, FILE *f1, FILE *f2, int fd2,
> + const char *label, struct got_repository *repo, got_diff_blob_cb cb,
> + void *cb_arg, int diff_content)
> {
> const struct got_error *err = NULL;
> struct got_object *treeobj = NULL;
> @@ -396,7 +398,7 @@ diff_added_tree(struct got_object_id *id, FILE *f, int
> if (err)
> goto done;
>
> - err = got_diff_tree(NULL, tree, NULL, f, -1, fd, NULL, label,
> + err = got_diff_tree(NULL, tree, f1, f2, -1, fd2, NULL, label,
> repo, cb, cb_arg, diff_content);
> done:
> if (tree)
> @@ -461,8 +463,8 @@ done:
> }
>
> static const struct got_error *
> -diff_deleted_tree(struct got_object_id *id, FILE *f, int fd,
> - const char *label, struct got_repository *repo,
> +diff_deleted_tree(struct got_object_id *id, FILE *f1, int fd1,
> + FILE *f2, const char *label, struct got_repository *repo,
> got_diff_blob_cb cb, void *cb_arg, int diff_content)
> {
> const struct got_error *err;
> @@ -482,7 +484,7 @@ diff_deleted_tree(struct got_object_id *id, FILE *f, i
> if (err)
> goto done;
>
> - err = got_diff_tree(tree, NULL, f, NULL, fd, -1, label, NULL,
> + err = got_diff_tree(tree, NULL, f1, f2, fd1, -1, label, NULL,
> repo, cb, cb_arg, diff_content);
> done:
> if (tree)
> @@ -516,12 +518,12 @@ diff_entry_old_new(struct got_tree_entry *te1, struct
>
> if (te2 == NULL) {
> if (S_ISDIR(te1->mode))
> - err = diff_deleted_tree(&te1->id, f1, fd1, label1,
> - repo, cb, cb_arg, diff_content);
> + err = diff_deleted_tree(&te1->id, f1, fd1, f2,
> + label1, repo, cb, cb_arg, diff_content);
> else {
> if (diff_content)
> err = diff_deleted_blob(&te1->id, f1, fd1,
> - label1, te1->mode, repo, cb, cb_arg);
> + f2, label1, te1->mode, repo, cb, cb_arg);
> else
> err = cb(cb_arg, NULL, NULL, NULL, NULL,
> &te1->id, NULL, label1, NULL,
> @@ -562,7 +564,7 @@ diff_entry_old_new(struct got_tree_entry *te1, struct
>
> static const struct got_error *
> diff_entry_new_old(struct got_tree_entry *te2,
> - struct got_tree_entry *te1, FILE *f2, int fd2, const char *label2,
> + struct got_tree_entry *te1, FILE *f1, FILE *f2, int fd2, const char *label2,
> struct got_repository *repo, got_diff_blob_cb cb, void *cb_arg,
> int diff_content)
> {
> @@ -573,11 +575,11 @@ diff_entry_new_old(struct got_tree_entry *te2,
> return NULL;
>
> if (S_ISDIR(te2->mode))
> - return diff_added_tree(&te2->id, f2, fd2, label2,
> + return diff_added_tree(&te2->id, f1, f2, fd2, label2,
> repo, cb, cb_arg, diff_content);
>
> if (diff_content)
> - return diff_added_blob(&te2->id, f2, fd2,
> + return diff_added_blob(&te2->id, f1, f2, fd2,
> label2, te2->mode, repo, cb, cb_arg);
>
> return cb(cb_arg, NULL, NULL, NULL, NULL, NULL, &te2->id,
> @@ -690,8 +692,8 @@ got_diff_tree(struct got_tree_object *tree1, struct go
> return
> got_error_from_errno("asprintf");
> }
> - err = diff_entry_new_old(te2, te, f2, fd2, l2, repo,
> - cb, cb_arg, diff_content);
> + err = diff_entry_new_old(te2, te, f1, f2, fd2, l2,
> + repo, cb, cb_arg, diff_content);
> if (err)
> break;
> }
> @@ -1086,9 +1088,9 @@ done:
>
> const struct got_error *
> got_diff_files(struct got_diffreg_result **resultp,
> - FILE *f1, const char *label1, FILE *f2, const char *label2,
> - int diff_context, int ignore_whitespace, int force_text_diff,
> - FILE *outfile)
> + FILE *f1, int f1_exists, const char *label1, FILE *f2, int f2_exists,
> + const char *label2, int diff_context, int ignore_whitespace,
> + int force_text_diff, FILE *outfile)
> {
> const struct got_error *err = NULL;
> struct got_diffreg_result *diffreg_result = NULL;
> @@ -1098,9 +1100,9 @@ got_diff_files(struct got_diffreg_result **resultp,
>
> if (outfile) {
> fprintf(outfile, "file - %s\n",
> - f1 == NULL ? "/dev/null" : label1);
> + f1_exists ? label1 : "/dev/null");
> fprintf(outfile, "file + %s\n",
> - f2 == NULL ? "/dev/null" : label2);
> + f2_exists ? label2 : "/dev/null");
> }
>
> err = got_diffreg(&diffreg_result, f1, f2, GOT_DIFF_ALGORITHM_PATIENCE,
> @@ -1110,7 +1112,7 @@ got_diff_files(struct got_diffreg_result **resultp,
>
> if (outfile) {
> err = got_diffreg_output(NULL, NULL, diffreg_result,
> - f1 != NULL, f2 != NULL, label1, label2,
> + f1_exists, f2_exists, label1, label2,
> GOT_DIFF_OUTPUT_UNIDIFF, diff_context, outfile);
> if (err)
> goto done;
> blob - 8121609c04313ea17c7ca2a5e48e324aed510006
> blob + 186401edf2e3a5402baefc29f867ea4fcbf0b2db
> --- lib/diffreg.c
> +++ lib/diffreg.c
> @@ -90,8 +90,7 @@ const struct diff_config diff_config_no_algo = {
> };
>
> const struct got_error *
> -got_diffreg_close(FILE *f1, char *p1, size_t size1,
> - FILE *f2, char *p2, size_t size2)
> +got_diffreg_close(char *p1, size_t size1, char *p2, size_t size2)
> {
> const struct got_error *err = NULL;
>
> @@ -99,10 +98,6 @@ got_diffreg_close(FILE *f1, char *p1, size_t size1,
> err = got_error_from_errno("munmap");
> if (p2 && munmap(p2, size2) == -1 && err == NULL)
> err = got_error_from_errno("munmap");
> - if (f1 && fclose(f1) == EOF && err == NULL)
> - err = got_error_from_errno("fclose");
> - if (f2 && fclose(f2) == EOF && err == NULL)
> - err = got_error_from_errno("fclose");
> return err;
> }
>
> @@ -186,7 +181,6 @@ got_diffreg(struct got_diffreg_result **diffreg_result
> const struct got_error *err = NULL;
> struct diff_config *cfg = NULL;
> char *p1 = NULL, *p2 = NULL;
> - int f1_created = 0, f2_created = 0;
> size_t size1, size2;
> struct diff_data d_left, d_right;
> struct diff_data *left, *right;
> @@ -209,23 +203,6 @@ got_diffreg(struct got_diffreg_result **diffreg_result
> if (err)
> goto done;
>
> - if (f1 == NULL) {
> - f1_created = 1;
> - f1 = got_opentemp();
> - if (f1 == NULL) {
> - err = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> - }
> - if (f2 == NULL) {
> - f2_created = 1;
> - f2 = got_opentemp();
> - if (f2 == NULL) {
> - err = got_error_from_errno("got_opentemp");
> - goto done;
> - }
> - }
> -
> err = got_diff_prepare_file(f1, &p1, &size1, left, cfg,
> ignore_whitespace, force_text_diff);
> if (err)
> @@ -248,12 +225,8 @@ got_diffreg(struct got_diffreg_result **diffreg_result
>
> if (diffreg_result) {
> (*diffreg_result)->result = diff_result;
> - if (f1_created)
> - (*diffreg_result)->f1 = f1;
> (*diffreg_result)->map1 = p1;
> (*diffreg_result)->size1 = size1;
> - if (f2_created)
> - (*diffreg_result)->f2 = f2;
> (*diffreg_result)->map2 = p2;
> (*diffreg_result)->size2 = size2;
> }
> @@ -264,8 +237,7 @@ done:
> diff_data_free(right);
> }
> if (err) {
> - got_diffreg_close(f1_created ? f1 : NULL, p1, size1,
> - f2_created ? f2 : NULL, p2, size2);
> + got_diffreg_close(p1, size1, p2, size2);
> if (diffreg_result) {
> diff_data_free(left);
> diff_data_free(right);
> @@ -352,8 +324,7 @@ got_diffreg_result_free(struct got_diffreg_result *dif
> diff_result_free(diffreg_result->result);
> diff_data_free(&diffreg_result->left);
> diff_data_free(&diffreg_result->right);
> - err = got_diffreg_close(diffreg_result->f1, diffreg_result->map1,
> - diffreg_result->size1, diffreg_result->f2,
> + err = got_diffreg_close(diffreg_result->map1, diffreg_result->size1,
> diffreg_result->map2, diffreg_result->size2);
> free(diffreg_result);
> return err;
> @@ -364,8 +335,8 @@ got_diffreg_result_free_left(struct got_diffreg_result
> {
> diff_data_free(&diffreg_result->left);
> memset(&diffreg_result->left, 0, sizeof(diffreg_result->left));
> - return got_diffreg_close(diffreg_result->f1, diffreg_result->map1,
> - diffreg_result->size1, NULL, NULL, 0);
> + return got_diffreg_close(diffreg_result->map1, diffreg_result->size1,
> + NULL, 0);
> }
>
> const struct got_error *
> @@ -373,6 +344,6 @@ got_diffreg_result_free_right(struct got_diffreg_resul
> {
> diff_data_free(&diffreg_result->right);
> memset(&diffreg_result->right, 0, sizeof(diffreg_result->right));
> - return got_diffreg_close(NULL, NULL, 0, diffreg_result->f2,
> - diffreg_result->map2, diffreg_result->size2);
> + return got_diffreg_close(NULL, 0, diffreg_result->map2,
> + diffreg_result->size2);
> }
> blob - 6262295fc0820142511469142f7dfe853a485953
> blob + 0157c869fff0c97a45ce1c6fc4f72dcca8c9f2b6
> --- lib/got_lib_diff.h
> +++ lib/got_lib_diff.h
> @@ -30,10 +30,8 @@ enum got_diff_output_format {
>
> struct got_diffreg_result {
> struct diff_result *result;
> - FILE *f1;
> char *map1;
> size_t size1;
> - FILE *f2;
> char *map2;
> size_t size2;
> struct diff_data left;
> @@ -59,11 +57,10 @@ const struct got_error *got_diffreg_result_free_left(
> struct got_diffreg_result *);
> const struct got_error *got_diffreg_result_free_right(
> struct got_diffreg_result *);
> -const struct got_error *got_diffreg_close(FILE *, char *, size_t,
> - FILE *, char *, size_t);
> +const struct got_error *got_diffreg_close(char *, size_t, char *, size_t);
>
> const struct got_error *got_merge_diff3(int *, int, FILE *, FILE *, FILE *,
> const char *, const char *, const char *, enum got_diff_algorithm);
>
> const struct got_error *got_diff_files(struct got_diffreg_result **, FILE *,
> - const char *, FILE *, const char *, int, int, int, FILE *);
> + int, const char *, FILE *, int, const char *, int, int, int, FILE *);
> blob - 18f13a154b509692bfadad8d3d5873d52e5bd66b
> blob + c6a2aa553557aa15a464291525d9d8c0ee48bcb8
> --- lib/worktree.c
> +++ lib/worktree.c
> @@ -4546,8 +4546,8 @@ create_patched_content(char **path_outfile, int revers
> if (err)
> goto done;
>
> - err = got_diff_files(&diffreg_result, f1, id_str, f2, path2, 3, 0, 1,
> - NULL);
> + err = got_diff_files(&diffreg_result, f1, 1, id_str, f2, 1, path2,
> + 3, 0, 1, NULL);
> if (err)
> goto done;
>
> @@ -8361,7 +8361,7 @@ create_unstaged_content(char **path_unstaged_content,
> if (err)
> goto done;
>
> - err = got_diff_files(&diffreg_result, f1, label1, f2,
> + err = got_diff_files(&diffreg_result, f1, 1, label1, f2, 1,
> path2, 3, 0, 1, NULL);
> if (err)
> goto done;
>
--
Tracey Emery
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic