This source file includes following definitions.
- compress2
- compress
- compressBound
1
2
3
4
5
6
7
8 #define ZLIB_INTERNAL
9 #include "zlib.h"
10
11
12
13
14
15
16
17
18
19
20
21
22 int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
23 Bytef *dest;
24 uLongf *destLen;
25 const Bytef *source;
26 uLong sourceLen;
27 int level;
28 {
29 z_stream stream;
30 int err;
31
32 stream.next_in = (Bytef*)source;
33 stream.avail_in = (uInt)sourceLen;
34 #ifdef MAXSEG_64K
35
36 if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
37 #endif
38 stream.next_out = dest;
39 stream.avail_out = (uInt)*destLen;
40 if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
41
42 stream.zalloc = (alloc_func)0;
43 stream.zfree = (free_func)0;
44 stream.opaque = (voidpf)0;
45
46 err = deflateInit(&stream, level);
47 if (err != Z_OK) return err;
48
49 err = deflate(&stream, Z_FINISH);
50 if (err != Z_STREAM_END) {
51 deflateEnd(&stream);
52 return err == Z_OK ? Z_BUF_ERROR : err;
53 }
54 *destLen = stream.total_out;
55
56 err = deflateEnd(&stream);
57 return err;
58 }
59
60
61
62 int ZEXPORT compress (dest, destLen, source, sourceLen)
63 Bytef *dest;
64 uLongf *destLen;
65 const Bytef *source;
66 uLong sourceLen;
67 {
68 return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
69 }
70
71
72
73
74
75 uLong ZEXPORT compressBound (sourceLen)
76 uLong sourceLen;
77 {
78 return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + 11;
79 }