summaryrefslogtreecommitdiff
path: root/audio/zinf/files/patch-zlib-infcodes.c
diff options
context:
space:
mode:
authorAnders Nordby <anders@FreeBSD.org>2002-08-08 19:17:19 +0000
committerAnders Nordby <anders@FreeBSD.org>2002-08-08 19:17:19 +0000
commit266f4a970ebce5d9be4330275dd5051801c26d9c (patch)
tree2191c386bf51d1cf060d251e99c8278f11b3a578 /audio/zinf/files/patch-zlib-infcodes.c
parentUpdate to version 1.1.0. (diff)
Update freeamp 2.1.1 to zinf 2.2.0.
Add zlib patches for working around zlib 1.1.4 problems (obtained from src/lib/zlibz in current) + a file that was forgotten in the zlib 1.1.3 to 1.1.4 upgrade between freeamp 2.1.1 and zinf 2.2.0.
Notes
Notes: svn path=/head/; revision=64251
Diffstat (limited to 'audio/zinf/files/patch-zlib-infcodes.c')
-rw-r--r--audio/zinf/files/patch-zlib-infcodes.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/audio/zinf/files/patch-zlib-infcodes.c b/audio/zinf/files/patch-zlib-infcodes.c
new file mode 100644
index 000000000000..635646f8bddb
--- /dev/null
+++ b/audio/zinf/files/patch-zlib-infcodes.c
@@ -0,0 +1,21 @@
+--- lib/zlib/src/infcodes.c.orig Thu Jun 20 08:40:24 2002
++++ lib/zlib/src/infcodes.c Sun Aug 4 16:45:11 2002
+@@ -197,8 +197,18 @@
+ c->mode = COPY;
+ case COPY: /* o: copying bytes in window, waiting for space */
+ f = q - c->sub.copy.dist;
++#ifdef __FreeBSD__
++ {
++ /* Work-around for a FreeBSD gcc bug. */
++ volatile inflate_blocks_statef *s1 = s;
++
++ while (f < s1->window) /* modulo window size-"while" instead */
++ f += s1->end - s1->window; /* of "if" handles invalid distances */
++ }
++#else
+ while (f < s->window) /* modulo window size-"while" instead */
+ f += s->end - s->window; /* of "if" handles invalid distances */
++#endif
+ while (c->len)
+ {
+ NEEDOUT