summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <carlosmn@github.com>2017-03-11 19:09:27 +0100
committerGitHub <noreply@github.com>2017-03-11 19:09:27 +0100
commit0b3623ac4755a61343aa6232f0ad88cc93c4e2e8 (patch)
tree753378b13d1da80d29078e04f041b412c2329323
parentffd4df6bf21562b94c27eb356df991f23a88c87b (diff)
parent11c8e756ac05e09adc3092f58f68cb1118c5167b (diff)
downloadlibgit2-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.c31
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;