Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html