diff options
| author | Vicent Martà <tanoku@gmail.com> | 2012-02-27 04:28:31 +0100 |
|---|---|---|
| committer | Vicent Martà <tanoku@gmail.com> | 2012-02-27 05:30:07 +0100 |
| commit | 13224ea4aad9a1b3c9cc4c992ceaea9af623e047 (patch) | |
| tree | b5c3a503d1ef7ba6269bf4291530c4e8e5936bdb /src/odb.c | |
| parent | e07c2d225deec42e592133df49ad8c564d4d66c7 (diff) | |
| download | libgit2-13224ea4aad9a1b3c9cc4c992ceaea9af623e047.tar.gz | |
buffer: Unify `git_fbuffer` and `git_buf`
This makes so much sense that I can't believe it hasn't been done
before. Kill the old `git_fbuffer` and read files straight into
`git_buf` objects.
Also: In order to fully support 4GB files in 32-bit systems, the
`git_buf` implementation has been changed from using `ssize_t` for
storage and storing negative values on allocation failure, to using
`size_t` and changing the buffer pointer to a magical pointer on
allocation failure.
Hopefully this won't break anything.
Diffstat (limited to 'src/odb.c')
| -rw-r--r-- | src/odb.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -393,8 +393,8 @@ static int add_default_backends(git_odb *db, const char *objects_dir, int as_alt static int load_alternates(git_odb *odb, const char *objects_dir) { git_buf alternates_path = GIT_BUF_INIT; + git_buf alternates_buf = GIT_BUF_INIT; char *buffer; - git_fbuffer alternates_buf = GIT_FBUFFER_INIT; const char *alternate; int error; @@ -412,7 +412,7 @@ static int load_alternates(git_odb *odb, const char *objects_dir) return git__throw(GIT_EOSERR, "Failed to add backend. Can't read alternates"); } - buffer = (char *)alternates_buf.data; + buffer = (char *)alternates_buf.ptr; error = GIT_SUCCESS; /* add each alternate as a new backend; one alternate per line */ @@ -433,7 +433,8 @@ static int load_alternates(git_odb *odb, const char *objects_dir) } git_buf_free(&alternates_path); - git_futils_freebuffer(&alternates_buf); + git_buf_free(&alternates_buf); + if (error < GIT_SUCCESS) return git__rethrow(error, "Failed to load alternates"); return error; |
