diff options
author | Carlos MartÃn Nieto <carlosmn@github.com> | 2017-03-11 19:09:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-11 19:09:27 +0100 |
commit | 0b3623ac4755a61343aa6232f0ad88cc93c4e2e8 (patch) | |
tree | 753378b13d1da80d29078e04f041b412c2329323 | |
parent | ffd4df6bf21562b94c27eb356df991f23a88c87b (diff) | |
parent | 11c8e756ac05e09adc3092f58f68cb1118c5167b (diff) | |
download | libgit2-0b3623ac4755a61343aa6232f0ad88cc93c4e2e8.tar.gz |
Merge pull request #4156 from libgit2/ethomson/readbuffer_dont_hash
git_futils_readbuffer: don't compute sha-1
-rw-r--r-- | src/fileops.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/fileops.c b/src/fileops.c index 57dea8fce..acb3b87e3 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -196,28 +196,29 @@ int git_futils_readbuffer_updated( p_close(fd); - if ((error = git_hash_buf(&checksum_new, buf.ptr, buf.size)) < 0) { - git_buf_free(&buf); - return error; - } + if (checksum) { + if ((error = git_hash_buf(&checksum_new, buf.ptr, buf.size)) < 0) { + git_buf_free(&buf); + return error; + } - /* - * If we were given a checksum, we only want to use it if it's different - */ - if (checksum && !git_oid__cmp(checksum, &checksum_new)) { - git_buf_free(&buf); - if (updated) - *updated = 0; + /* + * If we were given a checksum, we only want to use it if it's different + */ + if (!git_oid__cmp(checksum, &checksum_new)) { + git_buf_free(&buf); + if (updated) + *updated = 0; - return 0; + return 0; + } + + git_oid_cpy(checksum, &checksum_new); } /* * If we're here, the file did change, or the user didn't have an old version */ - if (checksum) - git_oid_cpy(checksum, &checksum_new); - if (updated != NULL) *updated = 1; |