lockfile: change lock_file::filename into a strbuf
For now, we still make sure to allocate at least PATH_MAX characters for the strbuf because resolve_symlink() doesn't know how to expand the space for its return value. (That will be fixed in a moment.) Another alternative would be to just use a strbuf as scratch space in lock_file() but then store a pointer to the naked string in struct lock_file. But lock_file objects are often reused. By reusing the same strbuf, we can avoid having to reallocate the string most times when a lock_file object is reused. Helped-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
3e88e8fc08
commit
cf6950d3bf
@ -341,7 +341,7 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
die(_("unable to create temporary index"));
|
||||
|
||||
old_index_env = getenv(INDEX_ENVIRONMENT);
|
||||
setenv(INDEX_ENVIRONMENT, index_lock.filename, 1);
|
||||
setenv(INDEX_ENVIRONMENT, index_lock.filename.buf, 1);
|
||||
|
||||
if (interactive_add(argc, argv, prefix, patch_interactive) != 0)
|
||||
die(_("interactive add failed"));
|
||||
@ -352,7 +352,7 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
unsetenv(INDEX_ENVIRONMENT);
|
||||
|
||||
discard_cache();
|
||||
read_cache_from(index_lock.filename);
|
||||
read_cache_from(index_lock.filename.buf);
|
||||
if (update_main_cache_tree(WRITE_TREE_SILENT) == 0) {
|
||||
if (reopen_lock_file(&index_lock) < 0)
|
||||
die(_("unable to write index file"));
|
||||
@ -362,7 +362,7 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
warning(_("Failed to update main cache tree"));
|
||||
|
||||
commit_style = COMMIT_NORMAL;
|
||||
return index_lock.filename;
|
||||
return index_lock.filename.buf;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -385,7 +385,7 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
if (write_locked_index(&the_index, &index_lock, CLOSE_LOCK))
|
||||
die(_("unable to write new_index file"));
|
||||
commit_style = COMMIT_NORMAL;
|
||||
return index_lock.filename;
|
||||
return index_lock.filename.buf;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -472,9 +472,9 @@ static const char *prepare_index(int argc, const char **argv, const char *prefix
|
||||
die(_("unable to write temporary index file"));
|
||||
|
||||
discard_cache();
|
||||
read_cache_from(false_lock.filename);
|
||||
read_cache_from(false_lock.filename.buf);
|
||||
|
||||
return false_lock.filename;
|
||||
return false_lock.filename.buf;
|
||||
}
|
||||
|
||||
static int run_status(FILE *fp, const char *index_file, const char *prefix, int nowarn,
|
||||
|
Reference in New Issue
Block a user