diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-02-13 13:39:10 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-02-13 13:39:10 -0800 |
commit | 9238941618a3d10f77d20e7f2a72533e701eb18f (patch) | |
tree | 36047b304b012cd39a13194d8a3e1fcadf5e2546 /http.c | |
parent | 3efeec3a75995eb7d3b250f58535023db6c261e7 (diff) | |
parent | 3449847168c9fa6e23db364e7da9077eadd39547 (diff) | |
download | git-9238941618a3d10f77d20e7f2a72533e701eb18f.tar.gz |
Merge branch 'cc/sha1-file-name'
Code clean-up.
* cc/sha1-file-name:
sha1_file: improve sha1_file_name() perfs
sha1_file: remove static strbuf from sha1_file_name()
Diffstat (limited to 'http.c')
-rw-r--r-- | http.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -2168,7 +2168,7 @@ struct http_object_request *new_http_object_request(const char *base_url, unsigned char *sha1) { char *hex = sha1_to_hex(sha1); - const char *filename; + struct strbuf filename = STRBUF_INIT; char prevfile[PATH_MAX]; int prevlocal; char prev_buf[PREV_BUF_SIZE]; @@ -2180,14 +2180,15 @@ struct http_object_request *new_http_object_request(const char *base_url, hashcpy(freq->sha1, sha1); freq->localfile = -1; - filename = sha1_file_name(sha1); + sha1_file_name(&filename, sha1); snprintf(freq->tmpfile, sizeof(freq->tmpfile), - "%s.temp", filename); + "%s.temp", filename.buf); - snprintf(prevfile, sizeof(prevfile), "%s.prev", filename); + snprintf(prevfile, sizeof(prevfile), "%s.prev", filename.buf); unlink_or_warn(prevfile); rename(freq->tmpfile, prevfile); unlink_or_warn(freq->tmpfile); + strbuf_release(&filename); if (freq->localfile != -1) error("fd leakage in start: %d", freq->localfile); @@ -2302,6 +2303,7 @@ void process_http_object_request(struct http_object_request *freq) int finish_http_object_request(struct http_object_request *freq) { struct stat st; + struct strbuf filename = STRBUF_INIT; close(freq->localfile); freq->localfile = -1; @@ -2327,8 +2329,10 @@ int finish_http_object_request(struct http_object_request *freq) unlink_or_warn(freq->tmpfile); return -1; } - freq->rename = - finalize_object_file(freq->tmpfile, sha1_file_name(freq->sha1)); + + sha1_file_name(&filename, freq->sha1); + freq->rename = finalize_object_file(freq->tmpfile, filename.buf); + strbuf_release(&filename); return freq->rename; } |