This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-client-go.git


The following commit(s) were added to refs/heads/master by this push:
     new 6a80299  Fix CompressMaxSize() for ZLib provider (#312)
6a80299 is described below

commit 6a80299de9eaa6b757284365601d5c00990fe4f0
Author: Matteo Merli <[email protected]>
AuthorDate: Tue Jul 7 07:56:29 2020 -0700

    Fix CompressMaxSize() for ZLib provider (#312)
---
 pulsar/internal/compression/zlib.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pulsar/internal/compression/zlib.go 
b/pulsar/internal/compression/zlib.go
index 44c4566..76457c6 100644
--- a/pulsar/internal/compression/zlib.go
+++ b/pulsar/internal/compression/zlib.go
@@ -31,7 +31,9 @@ func NewZLibProvider() Provider {
 }
 
 func (zlibProvider) CompressMaxSize(originalSize int) int {
-       return int(float32(originalSize) * 1.10)
+       // Use formula from ZLib: 
https://github.com/madler/zlib/blob/cacf7f1d4e3d44d871b605da3b647f07d718623f/deflate.c#L659
+       return originalSize +
+               ((originalSize + 7) >> 3) + ((originalSize + 63) >> 6) + 11
 }
 
 func (zlibProvider) Compress(dst, src []byte) []byte {

Reply via email to