Fix write_object.

This commit is contained in:
XTao 2014-01-26 17:07:39 +08:00
parent ca55fc6356
commit 1cb5a81194
2 changed files with 6 additions and 5 deletions

View File

@ -288,6 +288,7 @@ static int write_object(
git_odb_object *obj = NULL;
git_otype type;
unsigned char hdr[10], *zbuf = NULL;
void *delta_data = NULL;
void *data;
size_t hdr_len, zbuf_len = COMPRESS_BUFLEN, data_len;
ssize_t written;
@ -295,10 +296,11 @@ static int write_object(
if (po->delta) {
if (po->delta_data)
data = po->delta_data;
else if ((error = get_delta(&data, pb->odb, po)) < 0)
delta_data = po->delta_data;
else if ((error = get_delta(&delta_data, pb->odb, po)) < 0)
goto done;
data = delta_data;
data_len = po->delta_size;
type = GIT_OBJ_REF_DELTA;
} else {
@ -351,7 +353,7 @@ static int write_object(
}
if (po->delta)
git__free(data);
git__free(delta_data);
}
if (po->delta_data) {

View File

@ -70,7 +70,7 @@ int git_zstream_deflatebuf(git_buf *out, const void *in, size_t in_len)
int error = 0;
if ((error = git_zstream_init(&zstream)) < 0)
goto done;
return error;
do {
if (out->asize - out->size < BUFFER_SIZE)
@ -89,7 +89,6 @@ int git_zstream_deflatebuf(git_buf *out, const void *in, size_t in_len)
if (written < 0)
error = written;
done:
git_zstream_free(&zstream);
return error;
}