aboutsummaryrefslogtreecommitdiff
path: root/sha1_file.c
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-05-26 01:24:40 -0400
committerJunio C Hamano <junkio@cox.net>2007-05-26 20:28:08 -0700
commit7dc24aa5a62cc5f77e6637674581c837f4bdf78e (patch)
tree25045665bfb5d60ec9c9dcd42a528947e525516e /sha1_file.c
parentd079837eeeadc37d266113a1fd2deb0a01aaee91 (diff)
downloadgit-7dc24aa5a62cc5f77e6637674581c837f4bdf78e.tar.gz
git-7dc24aa5a62cc5f77e6637674581c837f4bdf78e.tar.xz
Micro-optimize prepare_alt_odb
Calling getenv() is not that expensive, but its also not free, and its certainly not cheaper than testing to see if alt_odb_tail is not null. Because we are calling prepare_alt_odb() from within find_sha1_file every time we cannot find an object file locally we want to skip out of prepare_alt_odb() as early as possible once we have initialized our alternate list. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'sha1_file.c')
-rw-r--r--sha1_file.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sha1_file.c b/sha1_file.c
index 6a5ba6350..a3637d7e5 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -376,11 +376,12 @@ void prepare_alt_odb(void)
{
const char *alt;
+ if (alt_odb_tail)
+ return;
+
alt = getenv(ALTERNATE_DB_ENVIRONMENT);
if (!alt) alt = "";
- if (alt_odb_tail)
- return;
alt_odb_tail = &alt_odb_list;
link_alt_odb_entries(alt, alt + strlen(alt), ':', NULL, 0);