summaryrefslogtreecommitdiff
path: root/src/pack-objects.c
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2014-01-26 06:38:02 -0800
committerEdward Thomson <ethomson@edwardthomson.com>2014-01-26 06:38:02 -0800
commit93b96ea705171ab5f8e66f8948bc2febc998c241 (patch)
tree6081e137399ef566761cd4a690a40061d1a6137f /src/pack-objects.c
parent58582cd0b057b0b7098c1113368cc3c910a0102f (diff)
parent1cb5a8119445bb62c6868eb61649b9b901c855cb (diff)
downloadlibgit2-93b96ea705171ab5f8e66f8948bc2febc998c241.tar.gz
Merge pull request #2076 from xtao/fix-zstream
Fix write_object.
Diffstat (limited to 'src/pack-objects.c')
-rw-r--r--src/pack-objects.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/pack-objects.c b/src/pack-objects.c
index c4ed4dce3..1774b07dc 100644
--- a/src/pack-objects.c
+++ b/src/pack-objects.c
@@ -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) {