mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 00:46:58 +02:00
sys-libs/zlib: Sync with Gentoo
It's from Gentoo commit 31b2c136145e3fbb9ccbbf461c7e74e16ad02d32.
This commit is contained in:
parent
7f12542ecc
commit
a729108048
@ -1,69 +0,0 @@
|
|||||||
https://github.com/madler/zlib/commit/f9694097dd69354b03cb8af959094c7f260db0a1
|
|
||||||
|
|
||||||
From f9694097dd69354b03cb8af959094c7f260db0a1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mark Adler <madler@alumni.caltech.edu>
|
|
||||||
Date: Mon, 16 Jan 2017 09:49:35 -0800
|
|
||||||
Subject: [PATCH] Permit a deflateParams() parameter change as soon as
|
|
||||||
possible.
|
|
||||||
|
|
||||||
This commit allows a parameter change even if the input data has
|
|
||||||
not all been compressed and copied to the application output
|
|
||||||
buffer, so long as all of the input data has been compressed to
|
|
||||||
the internal pending output buffer. This also allows an immediate
|
|
||||||
deflateParams change so long as there have been no deflate calls
|
|
||||||
since initialization or reset.
|
|
||||||
---
|
|
||||||
deflate.c | 6 +++---
|
|
||||||
zlib.h | 11 ++++++-----
|
|
||||||
2 files changed, 9 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/deflate.c b/deflate.c
|
|
||||||
index b63311a5..20bda4f6 100644
|
|
||||||
--- a/deflate.c
|
|
||||||
+++ b/deflate.c
|
|
||||||
@@ -494,7 +494,7 @@ int ZEXPORT deflateResetKeep (strm)
|
|
||||||
s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
|
|
||||||
#endif
|
|
||||||
adler32(0L, Z_NULL, 0);
|
|
||||||
- s->last_flush = Z_NO_FLUSH;
|
|
||||||
+ s->last_flush = -2;
|
|
||||||
|
|
||||||
_tr_init(s);
|
|
||||||
|
|
||||||
@@ -587,12 +587,12 @@ int ZEXPORT deflateParams(strm, level, strategy)
|
|
||||||
func = configuration_table[s->level].func;
|
|
||||||
|
|
||||||
if ((strategy != s->strategy || func != configuration_table[level].func) &&
|
|
||||||
- s->high_water) {
|
|
||||||
+ s->last_flush != -2) {
|
|
||||||
/* Flush the last buffer: */
|
|
||||||
int err = deflate(strm, Z_BLOCK);
|
|
||||||
if (err == Z_STREAM_ERROR)
|
|
||||||
return err;
|
|
||||||
- if (strm->avail_out == 0)
|
|
||||||
+ if (strm->avail_in || (s->strstart - s->block_start) + s->lookahead)
|
|
||||||
return Z_BUF_ERROR;
|
|
||||||
}
|
|
||||||
if (s->level != level) {
|
|
||||||
diff --git a/zlib.h b/zlib.h
|
|
||||||
index 5daf4f28..577d81e3 100644
|
|
||||||
--- a/zlib.h
|
|
||||||
+++ b/zlib.h
|
|
||||||
@@ -712,11 +712,12 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
|
|
||||||
used to switch between compression and straight copy of the input data, or
|
|
||||||
to switch to a different kind of input data requiring a different strategy.
|
|
||||||
If the compression approach (which is a function of the level) or the
|
|
||||||
- strategy is changed, and if any input has been consumed in a previous
|
|
||||||
- deflate() call, then the input available so far is compressed with the old
|
|
||||||
- level and strategy using deflate(strm, Z_BLOCK). There are three approaches
|
|
||||||
- for the compression levels 0, 1..3, and 4..9 respectively. The new level
|
|
||||||
- and strategy will take effect at the next call of deflate().
|
|
||||||
+ strategy is changed, and if there have been any deflate() calls since the
|
|
||||||
+ state was initialized or reset, then the input available so far is
|
|
||||||
+ compressed with the old level and strategy using deflate(strm, Z_BLOCK).
|
|
||||||
+ There are three approaches for the compression levels 0, 1..3, and 4..9
|
|
||||||
+ respectively. The new level and strategy will take effect at the next call
|
|
||||||
+ of deflate().
|
|
||||||
|
|
||||||
If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
|
|
||||||
not have enough output space to complete, then the parameter change will not
|
|
Loading…
Reference in New Issue
Block a user