sha1_file_name(): declare to return a const string

Change the return value of sha1_file_name() to (const char *). (Callers have no business mucking about here.) Change callers accordingly, deleting a few superfluous temporary variables along the way. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Michael Haggerty committed Feb 21, 2014 at 17:32 UTC 30d6c6eabfefed330bebbed9126fe21bf349fd6b
3 files changed +11 -17
cache.h
+1 -1
@@ -659,7 +659,7 @@ extern char *git_path(const char *fmt, ...) __attribute__((format (printf, 1, 2)
659 extern char *git_path_submodule(const char *path, const char *fmt, ...)
660 __attribute__((format (printf, 2, 3)));
661
662 -extern char *sha1_file_name(const unsigned char *sha1);
662 +extern const char *sha1_file_name(const unsigned char *sha1);
663 extern char *sha1_pack_name(const unsigned char *sha1);
664 extern char *sha1_pack_index_name(const unsigned char *sha1);
665 extern const char *find_unique_abbrev(const unsigned char *sha1, int);
http.c
+1 -1
@@ -1384,7 +1384,7 @@ struct http_object_request *new_http_object_request(const char *base_url,
1384 unsigned char *sha1)
1385 {
1386 char *hex = sha1_to_hex(sha1);
1387 - char *filename;
1387 + const char *filename;
1388 char prevfile[PATH_MAX];
1389 int prevlocal;
1390 char prev_buf[PREV_BUF_SIZE];
sha1_file.c
+9 -15
@@ -194,7 +194,7 @@ static void fill_sha1_path(char *pathbuf, const unsigned char *sha1)
194 * DB_ENVIRONMENT environment variable if it is not found in
195 * the primary object database.
196 */
197 -char *sha1_file_name(const unsigned char *sha1)
197 +const char *sha1_file_name(const unsigned char *sha1)
198 {
199 static char buf[PATH_MAX];
200 const char *objdir;
@@ -444,8 +444,7 @@ void prepare_alt_odb(void)
444
445 static int has_loose_object_local(const unsigned char *sha1)
446 {
447 - char *name = sha1_file_name(sha1);
448 - return !access(name, F_OK);
447 + return !access(sha1_file_name(sha1), F_OK);
448 }
449
450 int has_loose_object_nonlocal(const unsigned char *sha1)
@@ -1420,17 +1419,15 @@ static int git_open_noatime(const char *name)
1419
1420 static int stat_sha1_file(const unsigned char *sha1, struct stat *st)
1421 {
1423 - char *name = sha1_file_name(sha1);
1422 struct alternate_object_database *alt;
1423
1426 - if (!lstat(name, st))
1424 + if (!lstat(sha1_file_name(sha1), st))
1425 return 0;
1426
1427 prepare_alt_odb();
1428 errno = ENOENT;
1429 for (alt = alt_odb_list; alt; alt = alt->next) {
1432 - name = alt->name;
1433 - fill_sha1_path(name, sha1);
1430 + fill_sha1_path(alt->name, sha1);
1431 if (!lstat(alt->base, st))
1432 return 0;
1433 }
@@ -1441,18 +1438,16 @@ static int stat_sha1_file(const unsigned char *sha1, struct stat *st)
1438 static int open_sha1_file(const unsigned char *sha1)
1439 {
1440 int fd;
1444 - char *name = sha1_file_name(sha1);
1441 struct alternate_object_database *alt;
1442
1447 - fd = git_open_noatime(name);
1443 + fd = git_open_noatime(sha1_file_name(sha1));
1444 if (fd >= 0)
1445 return fd;
1446
1447 prepare_alt_odb();
1448 errno = ENOENT;
1449 for (alt = alt_odb_list; alt; alt = alt->next) {
1454 - name = alt->name;
1455 - fill_sha1_path(name, sha1);
1450 + fill_sha1_path(alt->name, sha1);
1451 fd = git_open_noatime(alt->base);
1452 if (fd >= 0)
1453 return fd;
@@ -2687,7 +2682,6 @@ void *read_sha1_file_extended(const unsigned char *sha1,
2682 unsigned flag)
2683 {
2684 void *data;
2690 - char *path;
2685 const struct packed_git *p;
2686 const unsigned char *repl = lookup_replace_object_extended(sha1, flag);
2687
@@ -2705,7 +2699,8 @@ void *read_sha1_file_extended(const unsigned char *sha1,
2699 sha1_to_hex(repl), sha1_to_hex(sha1));
2700
2701 if (has_loose_object(repl)) {
2708 - path = sha1_file_name(sha1);
2702 + const char *path = sha1_file_name(sha1);
2703 +
2704 die("loose object %s (stored in %s) is corrupt",
2705 sha1_to_hex(repl), path);
2706 }
@@ -2903,10 +2898,9 @@ static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen,
2898 git_zstream stream;
2899 git_SHA_CTX c;
2900 unsigned char parano_sha1[20];
2906 - char *filename;
2901 static char tmp_file[PATH_MAX];
2902 + const char *filename = sha1_file_name(sha1);
2903
2909 - filename = sha1_file_name(sha1);
2904 fd = create_tmpfile(tmp_file, sizeof(tmp_file), filename);
2905 if (fd < 0) {
2906 if (errno == EACCES)