Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1492b4b
)
Fixed Z_INSERT_ONLY support in deflate_stored().
author
Wayne Davison
<wayned@samba.org>
Sun, 2 Jan 2005 09:03:44 +0000
(09:03 +0000)
committer
Wayne Davison
<wayned@samba.org>
Sun, 2 Jan 2005 09:03:44 +0000
(09:03 +0000)
zlib/deflate.c
patch
|
blob
|
blame
|
history
diff --git
a/zlib/deflate.c
b/zlib/deflate.c
index
20209df
..
07814c7
100644
(file)
--- a/
zlib/deflate.c
+++ b/
zlib/deflate.c
@@
-1092,11
+1092,6
@@
local block_state deflate_stored(s, flush)
max_block_size = s->pending_buf_size - 5;
}
max_block_size = s->pending_buf_size - 5;
}
- if (flush == Z_INSERT_ONLY) {
- s->block_start = s->strstart;
- return need_more;
- }
-
/* Copy as much as possible from input to output: */
for (;;) {
/* Fill the window as much as possible: */
/* Copy as much as possible from input to output: */
for (;;) {
/* Fill the window as much as possible: */
@@
-1115,6
+1110,11
@@
local block_state deflate_stored(s, flush)
s->strstart += s->lookahead;
s->lookahead = 0;
s->strstart += s->lookahead;
s->lookahead = 0;
+ if (flush == Z_INSERT_ONLY) {
+ s->block_start = s->strstart;
+ continue;
+ }
+
/* Emit a stored block if pending_buf will be full: */
max_start = s->block_start + max_block_size;
if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
/* Emit a stored block if pending_buf will be full: */
max_start = s->block_start + max_block_size;
if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
@@
-1130,6
+1130,11
@@
local block_state deflate_stored(s, flush)
FLUSH_BLOCK(s, 0);
}
}
FLUSH_BLOCK(s, 0);
}
}
+ if (flush == Z_INSERT_ONLY) {
+ s->block_start = s->strstart;
+ return need_more;
+ }
+
FLUSH_BLOCK(s, flush == Z_FINISH);
return flush == Z_FINISH ? finish_done : block_done;
}
FLUSH_BLOCK(s, flush == Z_FINISH);
return flush == Z_FINISH ? finish_done : block_done;
}