odb_mkstemp: use git_path_buf

Since git_path_buf() is smart enough to replace "objects/"
with the correct object path, we can use it instead of
manually assembling the path. That's slightly shorter, and
will clean up any non-canonical bits in the path.

Signed-off-by: Jeff King <peff@peff.net>
This commit is contained in:
Jeff King 2017-03-28 15:45:52 -04:00 committed by Junio C Hamano
parent 594fa9998c
commit 4aa7d75e48

View File

@ -282,16 +282,14 @@ int odb_mkstemp(struct strbuf *template, const char *pattern)
* restrictive except to remove write permission.
*/
int mode = 0444;
strbuf_reset(template);
strbuf_addf(template, "%s/%s", get_object_directory(), pattern);
git_path_buf(template, "objects/%s", pattern);
fd = git_mkstemp_mode(template->buf, mode);
if (0 <= fd)
return fd;
/* slow path */
/* some mkstemp implementations erase template on failure */
strbuf_reset(template);
strbuf_addf(template, "%s/%s", get_object_directory(), pattern);
git_path_buf(template, "objects/%s", pattern);
safe_create_leading_directories(template->buf);
return xmkstemp_mode(template->buf, mode);
}