aboutsummaryrefslogtreecommitdiff
path: root/adler32.c
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2011-09-09 23:26:40 -0700
committerMark Adler <madler@alumni.caltech.edu>2011-09-09 23:26:40 -0700
commitf6194ef39af5864f792412460c354cc339dde7d1 (patch)
tree5ea1e6849128e9b2194c66ee3d82afa36b4ac07c /adler32.c
parent639be997883d9016baaf46017a2802b2ce1698bd (diff)
downloadzlib-f6194ef39af5864f792412460c354cc339dde7d1.tar.gz
zlib-f6194ef39af5864f792412460c354cc339dde7d1.tar.bz2
zlib-f6194ef39af5864f792412460c354cc339dde7d1.zip
zlib 1.2.3.4v1.2.3.4
Diffstat (limited to 'adler32.c')
-rw-r--r--adler32.c38
1 files changed, 9 insertions, 29 deletions
diff --git a/adler32.c b/adler32.c
index 8bf7dc4..65ad6a5 100644
--- a/adler32.c
+++ b/adler32.c
@@ -1,21 +1,15 @@
1/* adler32.c -- compute the Adler-32 checksum of a data stream 1/* adler32.c -- compute the Adler-32 checksum of a data stream
2 * Copyright (C) 1995-2006 Mark Adler 2 * Copyright (C) 1995-2007 Mark Adler
3 * For conditions of distribution and use, see copyright notice in zlib.h 3 * For conditions of distribution and use, see copyright notice in zlib.h
4 */ 4 */
5 5
6/* @(#) $Id$ */ 6/* @(#) $Id$ */
7 7
8#define ZLIB_INTERNAL 8#include "zutil.h"
9#include "zlib.h"
10 9
11#define local static 10#define local static
12 11
13#ifdef _LARGEFILE64_SOURCE 12local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2);
14 local uLong adler32_combine_(uLong adler1, uLong adler2, off64_t len2);
15#else
16 local uLong adler32_combine_(uLong adler1, uLong adler2, z_off_t len2);
17#endif
18
19 13
20#define BASE 65521UL /* largest prime smaller than 65536 */ 14#define BASE 65521UL /* largest prime smaller than 65536 */
21#define NMAX 5552 15#define NMAX 5552
@@ -137,11 +131,7 @@ uLong ZEXPORT adler32(adler, buf, len)
137local uLong adler32_combine_(adler1, adler2, len2) 131local uLong adler32_combine_(adler1, adler2, len2)
138 uLong adler1; 132 uLong adler1;
139 uLong adler2; 133 uLong adler2;
140#ifdef _LARGEFILE64_SOURCE 134 z_off64_t len2;
141 off64_t len2;
142#else
143 z_off_t len2;
144#endif
145{ 135{
146 unsigned long sum1; 136 unsigned long sum1;
147 unsigned long sum2; 137 unsigned long sum2;
@@ -154,10 +144,10 @@ local uLong adler32_combine_(adler1, adler2, len2)
154 MOD(sum2); 144 MOD(sum2);
155 sum1 += (adler2 & 0xffff) + BASE - 1; 145 sum1 += (adler2 & 0xffff) + BASE - 1;
156 sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem; 146 sum2 += ((adler1 >> 16) & 0xffff) + ((adler2 >> 16) & 0xffff) + BASE - rem;
157 if (sum1 > BASE) sum1 -= BASE; 147 if (sum1 >= BASE) sum1 -= BASE;
158 if (sum1 > BASE) sum1 -= BASE; 148 if (sum1 >= BASE) sum1 -= BASE;
159 if (sum2 > (BASE << 1)) sum2 -= (BASE << 1); 149 if (sum2 >= (BASE << 1)) sum2 -= (BASE << 1);
160 if (sum2 > BASE) sum2 -= BASE; 150 if (sum2 >= BASE) sum2 -= BASE;
161 return sum1 | (sum2 << 16); 151 return sum1 | (sum2 << 16);
162} 152}
163 153
@@ -170,20 +160,10 @@ uLong ZEXPORT adler32_combine(adler1, adler2, len2)
170 return adler32_combine_(adler1, adler2, len2); 160 return adler32_combine_(adler1, adler2, len2);
171} 161}
172 162
173#ifdef _LARGEFILE64_SOURCE
174uLong ZEXPORT adler32_combine64(adler1, adler2, len2) 163uLong ZEXPORT adler32_combine64(adler1, adler2, len2)
175 uLong adler1; 164 uLong adler1;
176 uLong adler2; 165 uLong adler2;
177 off64_t len2; 166 z_off64_t len2;
178{ 167{
179 return adler32_combine_(adler1, adler2, len2); 168 return adler32_combine_(adler1, adler2, len2);
180} 169}
181#else
182uLong ZEXPORT adler32_combine64(adler1, adler2, len2)
183 uLong adler1;
184 uLong adler2;
185 z_off_t len2;
186{
187 return adler32_combine_(adler1, adler2, len2);
188}
189#endif