Commit 225a6f10 authored by Junio C Hamano's avatar Junio C Hamano

zlib: wrap deflateBound() too

Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
parent 55bb5c91
......@@ -97,7 +97,7 @@ static void *zlib_deflate(void *data, unsigned long size,
memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, compression_level);
maxsize = deflateBound(&stream, size);
maxsize = git_deflate_bound(&stream, size);
buffer = xmalloc(maxsize);
stream.next_in = data;
......
......@@ -132,7 +132,7 @@ static unsigned long do_compress(void **pptr, unsigned long size)
memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, pack_compression_level);
maxsize = deflateBound(&stream, size);
maxsize = git_deflate_bound(&stream, size);
in = *pptr;
out = xmalloc(maxsize);
......
......@@ -16,9 +16,6 @@
#endif
#include <zlib.h>
#if defined(NO_DEFLATE_BOUND) || ZLIB_VERNUM < 0x1200
#define deflateBound(c,s) ((s) + (((s) + 7) >> 3) + (((s) + 63) >> 6) + 11)
#endif
void git_inflate_init(z_streamp strm);
void git_inflate_init_gzip_only(z_streamp strm);
......@@ -30,6 +27,7 @@ void git_deflate_init_gzip(z_streamp strm, int level);
void git_deflate_end(z_streamp strm);
int git_deflate_end_gently(z_streamp strm);
int git_deflate(z_streamp strm, int flush);
unsigned long git_deflate_bound(z_streamp, unsigned long);
#if defined(DT_UNKNOWN) && !defined(NO_D_TYPE_IN_DIRENT)
#define DTYPE(de) ((de)->d_type)
......
......@@ -1733,7 +1733,7 @@ static unsigned char *deflate_it(char *data,
memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, zlib_compression_level);
bound = deflateBound(&stream, size);
bound = git_deflate_bound(&stream, size);
deflated = xmalloc(bound);
stream.next_out = deflated;
stream.avail_out = bound;
......
......@@ -1058,7 +1058,7 @@ static int store_object(
s.next_in = (void *)dat->buf;
s.avail_in = dat->len;
}
s.avail_out = deflateBound(&s, s.avail_in);
s.avail_out = git_deflate_bound(&s, s.avail_in);
s.next_out = out = xmalloc(s.avail_out);
while (git_deflate(&s, Z_FINISH) == Z_OK)
; /* nothing */
......@@ -1081,7 +1081,7 @@ static int store_object(
git_deflate_init(&s, pack_compression_level);
s.next_in = (void *)dat->buf;
s.avail_in = dat->len;
s.avail_out = deflateBound(&s, s.avail_in);
s.avail_out = git_deflate_bound(&s, s.avail_in);
s.next_out = out = xrealloc(out, s.avail_out);
while (git_deflate(&s, Z_FINISH) == Z_OK)
; /* nothing */
......
......@@ -360,7 +360,7 @@ static void start_put(struct transfer_request *request)
/* Set it up */
memset(&stream, 0, sizeof(stream));
git_deflate_init(&stream, zlib_compression_level);
size = deflateBound(&stream, len + hdrlen);
size = git_deflate_bound(&stream, len + hdrlen);
strbuf_init(&request->buffer.buf, size);
request->buffer.posn = 0;
......
......@@ -476,7 +476,7 @@ static int post_rpc(struct rpc_state *rpc)
memset(&stream, 0, sizeof(stream));
git_deflate_init_gzip(&stream, Z_BEST_COMPRESSION);
size = deflateBound(&stream, rpc->len);
size = git_deflate_bound(&stream, rpc->len);
gzip_body = xmalloc(size);
stream.next_in = (unsigned char *)rpc->buf;
......
......@@ -78,6 +78,15 @@ int git_inflate(z_streamp strm, int flush)
return status;
}
#if defined(NO_DEFLATE_BOUND) || ZLIB_VERNUM < 0x1200
#define deflateBound(c,s) ((s) + (((s) + 7) >> 3) + (((s) + 63) >> 6) + 11)
#endif
unsigned long git_deflate_bound(z_streamp strm, unsigned long size)
{
return deflateBound(strm, size);
}
void git_deflate_init(z_streamp strm, int level)
{
int status = deflateInit(strm, level);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment