ReactOS 0.4.15-dev-7660-g0086d05
compress.c File Reference
#include "zlib.h"
Include dependency graph for compress.c:

Go to the source code of this file.

Macros

#define ZLIB_INTERNAL
 

Functions

int ZEXPORT compress2 (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level)
 
int ZEXPORT compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen)
 
uLong ZEXPORT compressBound (uLong sourceLen)
 

Macro Definition Documentation

◆ ZLIB_INTERNAL

#define ZLIB_INTERNAL

Definition at line 8 of file compress.c.

Function Documentation

◆ compress()

int ZEXPORT compress ( Bytef dest,
uLongf destLen,
const Bytef source,
uLong  sourceLen 
)

Definition at line 68 of file compress.c.

73{
74 return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
75}
#define Z_DEFAULT_COMPRESSION
Definition: zlib.h:130
static char * dest
Definition: rtl.c:135
int ZEXPORT compress2(Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level)
Definition: compress.c:22

Referenced by __attribute__(), add_file(), isCCITTCompression(), main(), parseAndPrintFile(), process_bitmap_updates(), TIFFRGBAImageBegin(), and zero_data().

◆ compress2()

int ZEXPORT compress2 ( Bytef dest,
uLongf destLen,
const Bytef source,
uLong  sourceLen,
int  level 
)

Definition at line 22 of file compress.c.

28{
30 int err;
31 const uInt max = (uInt)-1;
32 uLong left;
33
34 left = *destLen;
35 *destLen = 0;
36
37 stream.zalloc = (alloc_func)0;
38 stream.zfree = (free_func)0;
39 stream.opaque = (voidpf)0;
40
42 if (err != Z_OK) return err;
43
44 stream.next_out = dest;
45 stream.avail_out = 0;
46 stream.next_in = (z_const Bytef *)source;
47 stream.avail_in = 0;
48
49 do {
50 if (stream.avail_out == 0) {
51 stream.avail_out = left > (uLong)max ? max : (uInt)left;
52 left -= stream.avail_out;
53 }
54 if (stream.avail_in == 0) {
55 stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen;
56 sourceLen -= stream.avail_in;
57 }
58 err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH);
59 } while (err == Z_OK);
60
61 *destLen = stream.total_out;
63 return err == Z_STREAM_END ? Z_OK : err;
64}
void(* free_func)(voidpf opaque, voidpf address)
Definition: zlib.h:54
unsigned long uLong
Definition: zlib.h:39
voidpf(* alloc_func)(voidpf opaque, uInt items, uInt size)
Definition: zlib.h:53
void FAR * voidpf
Definition: zlib.h:42
#define Z_STREAM_END
Definition: zlib.h:115
#define Z_FINISH
Definition: zlib.h:109
unsigned int uInt
Definition: zlib.h:38
#define Z_OK
Definition: zlib.h:114
#define z_const
Definition: zlib.h:35
int deflate(z_streamp strm, int flush) DECLSPEC_HIDDEN
Definition: deflate.c:815
#define Z_NO_FLUSH
Definition: zlib.h:105
int deflateEnd(z_streamp strm) DECLSPEC_HIDDEN
Definition: deflate.c:1130
Byte FAR Bytef
Definition: zlib.h:41
GLint level
Definition: gl.h:1546
GLint left
Definition: glext.h:7726
#define err(...)
#define deflateInit(strm, level)
Definition: zlib.h:1810
Definition: parse.h:23
#define max(a, b)
Definition: svc.c:63

Referenced by compress().

◆ compressBound()

uLong ZEXPORT compressBound ( uLong  sourceLen)

Definition at line 81 of file compress.c.

83{
84 return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
85 (sourceLen >> 25) + 13;
86}