Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]>
---
builtin/unpack-objects.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
index 6fc72c1..044a087 100644
--- a/builtin/unpack-objects.c
+++ b/builtin/unpack-objects.c
@@ -54,6 +54,9 @@ static void add_object_buffer(struct object *object, char
*buffer, unsigned long
die("object %s tried to add buffer twice!",
sha1_to_hex(object->sha1));
}
+static struct strbuf back_buffer = STRBUF_INIT;
+static int save_to_back_buffer;
+
/*
* Make sure at least "min" bytes are available in the buffer, and
* return the pointer to the buffer.
@@ -66,6 +69,8 @@ static void *fill(int min)
die("cannot fill %d bytes", min);
if (offset) {
git_SHA1_Update(&ctx, buffer, offset);
+ if (save_to_back_buffer)
+ strbuf_add(&back_buffer, buffer, offset);
memmove(buffer, buffer + offset, len);
offset = 0;
}
@@ -81,6 +86,18 @@ static void *fill(int min)
return buffer;
}
+static void copy_back_buffer(int set)
+{
+ if (offset) {
+ git_SHA1_Update(&ctx, buffer, offset);
+ if (save_to_back_buffer)
+ strbuf_add(&back_buffer, buffer, offset);
+ memmove(buffer, buffer + offset, len);
+ offset = 0;
+ }
+ save_to_back_buffer = set;
+}
+
static void use(int bytes)
{
if (bytes > len)
--
1.8.2.82.gc24b958
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html